Unity3D_(游戲)控制物體的上、下、左、右移動


 

 

  通過鍵盤上↑、↓、←、→實現對物體的控制

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gary_Text : MonoBehaviour {

    public Transform WuTi;

    public float speed = 1;

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    void Update () {
        //
        if(Input.GetKey(KeyCode.UpArrow))
        {
            transform.eulerAngles = new Vector3(0, 0, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.eulerAngles = new Vector3(0, 180, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.eulerAngles = new Vector3(0, 270, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.eulerAngles = new Vector3(0, 90, 0);
            transform.position += transform.forward * speed;
        }
    }
}
Gary_Text.cs 控制物體移動腳本

 

 

實現過程

 

  GameObject->3D Object->Sphere創建一個Sphere作為被移動物體對象

 

  在Sphere物體上綁定Gary_Text.cs腳本

 

  可以在工程界面修改游戲速度speed值,默認是1

 

   //引用控制移動物體腳本
    public Transform WuTi;

    //設置物體移動的速度,設置為public使在游戲界面可控制
    public float speed = 1;

 

  在Updata()中跟新物體的坐標

void Update () {
        //
        if(Input.GetKey(KeyCode.UpArrow))
        {
            transform.eulerAngles = new Vector3(0, 0, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.eulerAngles = new Vector3(0, 180, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.eulerAngles = new Vector3(0, 270, 0);
            transform.position += transform.forward * speed;
        }
        //
        else if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.eulerAngles = new Vector3(0, 90, 0);
            transform.position += transform.forward * speed;
        }
    }

 

 

======分割線Σ(= =!)...=======

 

  工具欄Edit->Project Settings ->Input可打開輸入設備管理器對用戶

 

  Horizeontal -> 監聽物體水平移動

  Vertival  ->監聽物體豎直移動

  。。。。。。

  還很多,要學習

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM