using System.Collections; using System.Collections.Generic; using UnityEngine; //1.參考阿發你好的兩個章節教程(無人機,射擊遊戲) //(2).無人機飛行:參考影片:https://www.bilibili.com/video/BV1TZ4y1o76s?p=102 //第16章調用component(無人機飛行):https://www.bilibili.com/video/BV1TZ4y1o76s?p=71 //1.如何把節點的component打勾,方法:this.gameObject.GetComponent().enabled = true; //2.直升機的asset store:https://assetstore.unity.com/packages/3d/vehicles/air/military-attack-helicopter-hellfire-missile-4244#description public class helicopterControl : MonoBehaviour { float SpeedX = 0; float SpeedY = 0; float SpeedZ = 0; float RotateY = 0; [Tooltip("移動時間")] public float moveTime = 10; public void TurnOn() { this.gameObject.GetComponent().enabled = true; this.gameObject.GetComponent().Play(); } public void TurnOff() { this.gameObject.GetComponent().enabled = false; this.gameObject.GetComponent().Stop(); } public void MoveUp() { SpeedY = 2; Invoke("moveY", moveTime); } public void MoveDown() { SpeedY = -2; Invoke("moveY", moveTime); } public void MoveForward() { SpeedZ = 4; Invoke("moveZ", moveTime); } public void MoveBack() { SpeedZ = -4; Invoke("moveZ", moveTime); } public void MoveRight() { SpeedX = 4; Invoke("moveX", moveTime); } public void MoveLeft() { SpeedX = -4; Invoke("moveX", moveTime); } public void TurnRight() { RotateY = 7; Invoke("TurnX", moveTime); } public void TurnLeftt() { RotateY = -7; Invoke("TurnX", moveTime); } void Update() { float dx = SpeedX * Time.deltaTime; float dy = SpeedY * Time.deltaTime; float dz = SpeedZ * Time.deltaTime; this.gameObject.transform.Translate(dx, dy, dz, Space.Self); float ry = RotateY * Time.deltaTime; this.gameObject.transform.Rotate(0, ry, 0, Space.Self); } void moveY() { SpeedY = 0; } void moveZ() { SpeedZ = 0; } void moveX() { SpeedX = 0; } void TurnX() { RotateY = 0; } }