วันอังคารที่ 18 กันยายน พ.ศ. 2561

การทดลองทำปุ่มไว้บนป้ายแบบ AR

    การทดลองนี้เกิดขึ้นจากที่ว่า ในวันพฤหัสบดีที่ 13 กันยายน พศ. 2561 เพื่อนที่ทำโปรเจคท์นี้ด้วยกันได้พูดขึ้นมาว่า เราน่าจะลองทำเป็นปุ่มกดบนป้ายนะ เพราะว่าตัวป้ายนั้นมีตั้งแต่ชั้นที่ 1 - 6 ถ้าเราทำปุ่มกดบนป้ายให้ ผู้ใช้กดได้เลยคงจะสะดวกไม่น้อยเลยทีเดียว

    ตัวผมเองก็มีความสนใจและเห็นด้วยกับความคิดนี้เลยลองค้นหาวิธีการสร้างปุ่มและสามารถใช้กับ AR ได้ ซึ่งก็มีอยู่หลายวิธีซึ่งวิธีที่ผมสนใจคือวิธีที่อยู่ในคลิปวิดิโอนี้ครับ Link (Youtube) ซึ่งผมก็ลองทำตามดูแล้วมันก็ได้ผลตามวิดิโอด้านล่าง


    โดยในวิดิโอจะเป็นการอัดหน้าจอจากโทรศัพท์ของผมแล้วสแกน Target ที่อยู่บนหน้าจอโน๊ตบุ๊คของผมเองครับ

    ในคลิปวิดิโอนั้นจะเป็นการกดปุ่มทั้งหมด 6 ปุ่ม โดยเมื่อกดแล้วจะมีเสียงเป็น โด เร มี ฟา ซอล ลา ไล่มาตั้งแต่ปุ่มบนสุดถึงปุ่มล่างสุดครับ

สิ่งที่ได้จากการทดลอง

1. การประยุกต์ใช้ 3D Model Cube มาทำเป็นปุ่มกดด้วยการใช้ Switch-Case 



    จากรูปด้านบนจะเห็นได้ว่าปุ่มกดที่ใช้กดนั้นผมใช้เป็น 3D Model ลูกบาศ์กธรรมดามาใช้เป็นปุ่มกดครับ โดยในไฟล์ Script จะมีชุดคำสั่งดังนี้อยู่

Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);

    คำสั่งด้านบนจะเป็นการรับอินพุทว่าตอนนี้หน้าจอของอุปกรณ์ที่เป็น Touch Screen นั้นถูกสัมผัสที่จุดใด แล้วเมื่อเรารู้ว่าจุดใดถูกกดอยู่ เราสามารถที่จะเรียกค่า value ที่เป็น name ของ object ที่เรากำลังกดอยู่ได้ แล้วนำไปเข้า switch case แล้วทำตามเงื่อนไขต่างๆได้ครับ ในที่นี้จะเป็นเงื่อนไขการเล่นเสียงโน๊ตต่างๆ


รูปภาพการใช้เงื่อนไข Switch Case


รูปภาพการตั้งชื่อให้ 3D Model Cube เป็น btn1-btn6

2. การสร้าง Array เปล่าใน Unity Script


รูปการสร้าง Array aClips และการใช้ Library AudioSource สำหรับการเล่นเสียงเพลง


การเรียกใช้ Array และใช้คำสั่งเล่นเสียงเพลง


    ในไฟล์ Script ผมจำเป็นจะต้องสร้าง Array ขึ้นมาชื่อว่า aClips ไว้สำหรับการเล่นเสียงตัวโน๊ตที่ต่างกัน ซึ่งพอผมสร้างเสร็จแล้วในโปรแกรม Unity จะมีแถบใหม่ขึ้นมาเป็นแถบชื่อ aClips ตามชื่อ Array ที่ผมได้สร้างเอาไว้ และผมสามารถที่จะลากไฟล์เสียงเข้าไปเป็น Element ของ Array เพื่อไว้ใช้เล่นเป็นเสียงได้เลยครับ


รูปภาพการเพิ่ม element ให้กับ Array



ไม่มีความคิดเห็น:

แสดงความคิดเห็น