using UnityEngine; using System.Collections; using System.Collections.Generic; public class walk : MonoBehaviour { public GUISkin customSkin; public Texture TextureScore; int mScore = 0; private Camera cam; string output = ""; bool isMoving = true; // Start is called before the first frame update void Start() { cam = Camera.main; } Vector3 lastMouseCoordinate = Vector3.zero; public void Update() { //用滑鼠按下操控 if(isMoving == true) { if (Input.GetMouseButtonUp(0)) { //move //transform.position = Vector3.Lerp(transform.position, transform.position+new Vector3(0, 0, 2), 0.3f); Vector3 objectToscreenPos = cam.WorldToScreenPoint(transform.position); Debug.Log("objectToscreenPos=" + objectToscreenPos); Vector3 mouseToscreenPos = Input.mousePosition; mouseToscreenPos.z = 0; Debug.Log("mouseToscreenPos=" + mouseToscreenPos); Vector3 mouseDelta = mouseToscreenPos - objectToscreenPos; if (mouseDelta.y > 0) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, 2), 0.3f); mScore ++; } if (mouseDelta.y < 0) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, -2), 0.3f); mScore --; } if (mouseDelta.x > 0) transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(3, 0, 0), 0.3f); if (mouseDelta.x < 0) transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(-3, 0, 0), 0.3f); } //用鍵盤ws前後,ad左右操控 if (Input.GetKeyDown(KeyCode.W)) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, 2), 0.3f); mScore ++; } if (Input.GetKeyDown(KeyCode.S)) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, -2), 0.3f); mScore --; } if (Input.GetKeyDown(KeyCode.A)) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(-3, 0, 0), 0.3f); } if (Input.GetKeyDown(KeyCode.D)) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(3, 0, 0), 0.3f); } //用鍵盤↑↓←→上下左右鍵操控 if (Input.GetKeyDown("up")) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, 2), 0.3f); mScore ++; } if (Input.GetKeyDown("down")) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0, 0, -2), 0.3f); mScore --; } if (Input.GetKeyDown("left")) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(-3, 0, 0), 0.3f); } if (Input.GetKeyDown("right")) { transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(3, 0, 0), 0.3f); } } } void OnTriggerEnter (Collider other) { if (other.tag == "final") { output = "恭喜,你已經成功過關。"; isMoving = false; } if (other.tag == "car" || other.tag == "tree") { output = "Game Over,遊戲結束"; isMoving = false; } } void OnGUI() { GUI.skin = customSkin; GUI.Label(new Rect( 80, 25, 100, 60 ), "score : "); GUI.Label(new Rect( Screen.width-35, 25, 100, 60 ), mScore.ToString() ); GUI.DrawTexture(new Rect(10, 10, 60, 60), TextureScore , ScaleMode.ScaleToFit, true, 1.0F); int buttonWidth = 200; int buttonHeight = 50; int buttonX = (Screen.width - buttonWidth ) / 2; int buttonY = (Screen.height - buttonHeight ) / 2; if(isMoving==false) { if ( GUI.Button(new Rect( buttonX, buttonY, buttonWidth, buttonHeight ), "Game Over,Try again?" ) ) { UnityEngine.SceneManagement.SceneManager.LoadScene(0); } } } }