เขียน Code ให้กล้องติดตามเครื่องบิน
สร้าง Script C# -ขึ้นมาใหม่ในที่นี้จะตั้งชื่อว่า CameraTrackPlaneสร้างตัวแปร public GameObject _Plane; ขึ้นมาในคลาสเพื่อใช้อ้างอิงถึง Game Object Plane ที่เราได้ทำการสร้างไว้แล้ว
จากนั้นให้สร้างตัวแปรขึ้นมาอีกตัว คือ private float _OffsetX; เพื่อใช้เก็บระยะห่างระหว่างกล้องและเครื่องบิน สาเหตที่ต้องมี _OffsetX เนื่องจากเราไม่อยากให้กล้องตามตำแหน่งเดียวกับเครื่องบินเลยซะทีเดียว เพราะไม่งั้นเครื่องบินจะมาอยู่กึ่งกลางหน้าจอเวลาเล่นเกม เราอยากให้เครื่องบินอยู่ค่อนไปทางซ้ายของเกมแบบภาพข้างล่างนี้
โดยการคำนวณระยะห่างระหว่างเครื่องบินและกล้อง คือ
ตำแหน่ง x ของกล้อง - ตำแหน่ง x ของเครื่องบิน
ถ้าเขียนเป็น Code จะได้ดังนี้
_OffsetX = transform.position.x - _Plane.transform.position.x;
จะเห็นว่าใช้ tranform.position ที่ได้สอนไปแล้วในตอนที่แล้ว
โดยจะเซ็ทค่าให้ตัวแปร _OffsetX แค่ครั้งเดียวก็พอจึงทำในฟังก์ชั่น Start() จะได้ Code ดังนี้
public class CameraTrackPlane : MonoBehaviour
{
public GameObject _Plane;
private float _OffsetX;
private void Start()
{
_OffsetX = transform.position.x - _Plane.transform.position.x;
}
}
ต่อมาเราจะต้องทำการเปลี่ยนตำแหน่งให้กล้องเคลื่อนที่ไปทางขวาตลอดตามเครื่องบินโดยใช้ค่า _OffsetX ที่เราได้คำนวณไว้ในฟังก์ชั่น Start() อย่างที่เคยกล่าวไว้แล้วว่าฟังก์ชั่น Start() จะทำงานก่อนฟังก์ชั่น Update() ดังนั้นเมื่อฟังก์ชั่น Update() ถูกเรียกค่า _OffsetX จึงถูกเซ็ทเรียบร้อยแล้ว
ใช้ความรู้เรื่องการเปลี่ยนตำแหน่งในตอนที่แล้ว
private void Update()
{
Vector3 pos = new Vector3(_Plane.transform.position.x + _OffsetX, transform.position.y, transform.position.z);
transform.position = pos;
}
Add Component ให้กล้อง
กลับไปที่ Unity คลิกที่ Game Object Main Camera จากนั้นเพิ่ม Script CameraTrackPlane ลงไป จะเห็นว่าที่ Script มี Plane ขึ้นมา ให้ลาก Game Object Plane ลงไปเพื่อทำการอ้างอิงถึง Game Object ที่กล้องจะติดตามเมื่อรันเกมจะเห็นว่าเครื่องบินไม่บินหลุดออกจากหน้าจอแสดงผลแล้ว เพราะตอนนี้กล้องตามเครื่องบินเรียบร้อยแล้ว แต่ยังเห็นภาพไม่ชัดเจนว่าเครื่องบินกำลังบินไปทางขวาอยู่หรือไม่ ในตอนหน้าเราจะมาทำการใส่ฉากพื้นหลังให้กับเกมกัน
ถัดไป
ตอนที่ 1 : Overview
ตอนที่ 2 : เริ่มต้นสร้างโปรเจ็ค และจัดเตรียม resources
ตอนที่ 3 : รู้จักกับ Game Object และ Scene
ตอนที่ 4 : สร้างแอนิเมชั่นให้เครื่องบิน
ตอนที่ 5 : Animator และ Mecanim
ตอนที่ 2 : เริ่มต้นสร้างโปรเจ็ค และจัดเตรียม resources
ตอนที่ 3 : รู้จักกับ Game Object และ Scene
ตอนที่ 4 : สร้างแอนิเมชั่นให้เครื่องบิน
ตอนที่ 5 : Animator และ Mecanim
ไม่มีความคิดเห็น:
แสดงความคิดเห็น