การใช้ Yield แบบต่างๆเพื่อหน่วงเวลาใน Couroutine

schedule

24/01/2018

สวัสดีครับ กลับมาพบกับเทคนิคดีๆในการเขียนเกมด้วย Unity กันอีกครั้งนะครับ วันนี้ผมนำสคริปที่เกี่ยวกับ Coroutine ใน Unity มาฝากกันครับ เวลาเราสร้างฟังชั่นก์ใน Unity เนี่ย การทำงานใน Fucntion ก็จะทำงานทันทีที่เรียกใช้เลยตั้งแต่ต้นจนจบ แต่หากเราใช้ Couroutine เราจะสามารถหน่วงเวลาการทำงานในแต่ละบรรทัดได้ครับ ซึ่งลักษณะการสร้าง Coroutine จะมีลักษณะดังนี้ครับ
IEnumerator Fade() { for (float f = 1f; f >= 0; f -= 0.1f) { Color c = renderer.material.color; c.a = f; renderer.material.color = c; yield return null; } }
  ซึ่งเวลาเราเรียกใช้ฟังชั่นก์แบบ Couroutine เราต้องเรียกพิเศษนิดนึง โดยจะมีวิธีการเรียกแบบนี้ครับ
StartCoroutine("Fade");
    ซึ่งการหน่วงเวลาในฟังชั่นแบบ Coroutine จะมีวิธีการหลายๆรูปแบบครับ มาดูกันเลย
yield return null : หยุดรอฟังชั่นก์ Update รอบต่อไป yield return new WaitForFixedUpdate(); หยุดรอฟังชั่นก์ FixedUpdate ครั้งต่อไป yield return new WaitForEndOfFrame(); // หยุดรอทุกอย่างในเฟรมเล่นจนครบหมดแล้ว yield return new WaitForSeconds(float seconds); // หยุดรอตามวินาที yield return new WWW("MY/WEB/REQUEST"); // หยุดรอเว็บรีเควสเสร็จ
ถ้าเพื่อนๆจำวิธีการหน่วงเวลาแบบต่างๆนี้ได้ การใช้ Couroutine ก็ไม่น่าจะมีปัญหากับเพื่อนๆอีกต่อไปแล้วล่ะครับ แล้วพบกันใหม่โอกาสหน้าครับ    
arrow_left

กลับหน้ารวม

เรียนทำเกมที่ช่องของเรา

เป็นเพื่อนกับเรา

ProGaming

บริษัท โปรเกมมิ่ง จำกัด
522/222 อาคารสปีดเวย์ ชั้น 5 ซอยทรัพย์ธานี ถนนอโศก-ดินแดง แขวงดินแดง เขตดินแดง กรุงเทพฯ 10400

© Copyright 2023 ProGaming Co. Ltd.

Gaming as a service