using System.Collections; using System.Collections.Generic; using UnityEngine; public class cs01 : MonoBehaviour { //移動變數 float dx, dy, dz = 0; float speedX, speedY, speedZ = 0; //旋轉變數 float ry = 0; float rotateY = 0; //螺旋槳物件Rotor,以自己的中心,旋轉 float sy = 0; float spinY = 0; //向右 public void moveRight() { speedX = 2; //2秒後停止 Invoke("StopSpeedX", 2); } //向左 public void moveLeft() { speedX = -2; //2秒後停止 Invoke("StopSpeedX", 2); } void StopSpeedX() { speedX = 0; } //向前 public void moveForwrad() { speedZ = 2; //2秒後停止 Invoke("StopSpeedZ", 2); } //向後 public void moveBack() { speedZ = -2; //2秒後停止 Invoke("StopSpeedZ", 2); } void StopSpeedZ() { speedZ = 0; } //向上 public void moveUp() { speedY = 2; //2秒後停止 Invoke("StopSpeedY", 2); } //向下 public void moveDown() { speedY = -2; //2秒後停止 Invoke("StopSpeedY", 2); } void StopSpeedY() { speedY = 0; } //右轉 public void turnRight() { rotateY = 10; //2秒後停止 Invoke("StoprotateY", 2); } //左轉 public void turnLeft() { rotateY = -10; //2秒後停止 Invoke("StoprotateY", 2); } void StoprotateY() { rotateY = 0; } //開 public void turnOn() { //螺旋槳物件Rotor,轉速spinY spinY = 800; //播放音效 this.gameObject.GetComponent().Play(); } //關 public void turnOff() { spinY = 0; //關閉音效 this.gameObject.GetComponent().Stop(); } // 幀動畫 void Update() { //移動 dx = speedX * Time.deltaTime; dy = speedY * Time.deltaTime; dz = speedZ * Time.deltaTime; this.gameObject.transform.Translate(dx, dy, dz, Space.World); //旋轉 ry = rotateY * Time.deltaTime; this.gameObject.transform.Rotate(0, ry, 0, Space.World); //螺旋槳物件Rotor,以自己的中心,旋轉 sy = spinY * Time.deltaTime; GameObject.Find("Rotor").transform.Rotate(0, sy, 0, Space.Self); } }