สร้างเกม - หลากหลายวิธีการ กำหนดค่าให้อีก gameObject (โอ้ยอย่างงนะ !)
วิธีแรก มาดูกับครับว่าถ้าเราอยากจะมี สคลิปเพียงอันเดียว ที่ยัดไว้ที่ Object อันไหนสักอัน แล้วเราก็สามารถ ใช้คำสั่งที่สคลิปอันนี้อันเดียว ให้ Object อื่นๆทำนู้นนี่นั้นตามที่เราสั่ง โดยที่ไม่ต้องไปยัดไว้ที่ Object อื่นๆทุกๆอันเลย เราจะทำยังไง (อย่างงกันนะครับ)
สมมติว่าเรามี 2 Object แล้วกันนะครับ คือเอาไว้ยัดสคลิปโดยเฉพาะอันนึง และอีก Object ก็เอาไว้สั่งโดยที่ไม่ต้องยัดสคลิปใดๆไว้ ตามนั้น ไปที่สคลิปดีกว่า
public class Enemy : MonoBehaviour { public GameObject player; // เอาสิครับ คุ้นไหม void Start() { // ทีนี้เราจะทำไรกะมันก็จัดมันเลยครับ แต่ผมจะสั่งให้มันหายไป 555
Destroy(player); } }
อ๋อกันแล้วใช่ป่าวครับ ก็คือแค่ประกาศตัวแปรเป็น public ครับ แล้วที่ Inspector เราก็ลาก
gameObject ไปใส่ที่นั่นได้เลย ในตัวแปลนะครับ
--------------------------------------------------
วิธีที่ 2 ใช้ฟังชั่นนี้เลยครับ Find()
GameObject player; void Start() { player = GameObject.Find("MainHeroCharacter"); }
ตามนั้นครับ ค่าที่ส่งไปในวงเล็บ ก็คือ ชื่อของ Object ครับ หรือ Object name นั่นเอง
--------------------------------------------------
วิธีสุดท้าย คือ Find เหมือนกันครับ แต่เป็นหาด้วยแท็ก
GameObject player; GameObject[] enemies; void Start() { player = GameObject.FindWithTag("Player"); enemies = GameObject.FindGameObjectsWithTag("Enemy"); }
ในกรณีที่ใช้แท็กเหมือนกันหลายๆ Object เราก็อย่าลืมที่จะประกาศเป็น Array ด้วยนะครับ
สมมติว่าเรามี 2 Object แล้วกันนะครับ คือเอาไว้ยัดสคลิปโดยเฉพาะอันนึง และอีก Object ก็เอาไว้สั่งโดยที่ไม่ต้องยัดสคลิปใดๆไว้ ตามนั้น ไปที่สคลิปดีกว่า
public class Enemy : MonoBehaviour { public GameObject player; // เอาสิครับ คุ้นไหม void Start() { // ทีนี้เราจะทำไรกะมันก็จัดมันเลยครับ แต่ผมจะสั่งให้มันหายไป 555
Destroy(player); } }
อ๋อกันแล้วใช่ป่าวครับ ก็คือแค่ประกาศตัวแปรเป็น public ครับ แล้วที่ Inspector เราก็ลาก
gameObject ไปใส่ที่นั่นได้เลย ในตัวแปลนะครับ
--------------------------------------------------
วิธีที่ 2 ใช้ฟังชั่นนี้เลยครับ Find()
GameObject player; void Start() { player = GameObject.Find("MainHeroCharacter"); }
ตามนั้นครับ ค่าที่ส่งไปในวงเล็บ ก็คือ ชื่อของ Object ครับ หรือ Object name นั่นเอง
--------------------------------------------------
วิธีสุดท้าย คือ Find เหมือนกันครับ แต่เป็นหาด้วยแท็ก
GameObject player; GameObject[] enemies; void Start() { player = GameObject.FindWithTag("Player"); enemies = GameObject.FindGameObjectsWithTag("Enemy"); }
ในกรณีที่ใช้แท็กเหมือนกันหลายๆ Object เราก็อย่าลืมที่จะประกาศเป็น Array ด้วยนะครับ
Post a Comment