Unity鍵盤WASD實現(xiàn)物體移動
本文實例為大家分享了Unity鍵盤WASD實現(xiàn)物體移動的具體代碼,供大家參考,具體內(nèi)容如下
1首先在場景中建立一個Capsule,將主攝像機(jī)拖到其物體下。
2.將腳本掛在Capsule物體下,WASD 控制移動方向,空格延Y軸向上移動,F(xiàn)延Y軸向下移動
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveCam : MonoBehaviour { private Vector3 m_camRot; private Transform m_camTransform;//攝像機(jī)Transform private Transform m_transform;//攝像機(jī)父物體Transform public float m_movSpeed=10;//移動系數(shù) public float m_rotateSpeed=1;//旋轉(zhuǎn)系數(shù) private void Start() { m_camTransform = Camera.main.transform; m_transform = GetComponent<Transform>(); } private void Update() { Control(); } void Control() { if (Input.GetMouseButton(0)) { //獲取鼠標(biāo)移動距離 float rh = Input.GetAxis("Mouse X"); float rv = Input.GetAxis("Mouse Y"); // 旋轉(zhuǎn)攝像機(jī) m_camRot.x -= rv * m_rotateSpeed; m_camRot.y += rh*m_rotateSpeed; } m_camTransform.eulerAngles = m_camRot; // 使主角的面向方向與攝像機(jī)一致 Vector3 camrot = m_camTransform.eulerAngles; camrot.x = 0; camrot.z = 0; m_transform.eulerAngles = camrot; // 定義3個值控制移動 float xm = 0, ym = 0, zm = 0; //按鍵盤W向上移動 if (Input.GetKey(KeyCode.W)) { zm += m_movSpeed * Time.deltaTime; } else if (Input.GetKey(KeyCode.S))//按鍵盤S向下移動 { zm -= m_movSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.A))//按鍵盤A向左移動 { xm -= m_movSpeed * Time.deltaTime; } else if (Input.GetKey(KeyCode.D))//按鍵盤D向右移動 { xm += m_movSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.Space) && m_transform.position.y <= 3) { ym+=m_movSpeed * Time.deltaTime; } if (Input.GetKey(KeyCode.F) && m_transform.position.y >= 1) { ym -= m_movSpeed * Time.deltaTime; } m_transform.Translate(new Vector3(xm,ym,zm),Space.Self); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:C#學(xué)習(xí)教程之Socket的簡單使用
欄 目:C#教程
本文標(biāo)題:Unity鍵盤WASD實現(xiàn)物體移動
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/4904.html
您可能感興趣的文章
- 01-10Unity3d獲取系統(tǒng)時間
- 01-10Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作
- 01-10Unity UGUI教程之實現(xiàn)滑頁效果
- 01-10C#使用Protocol Buffer(ProtoBuf)進(jìn)行Unity中的Socket通信
- 01-10C#在Unity游戲開發(fā)中進(jìn)行多線程編程的方法
- 01-10C#實現(xiàn)可捕獲幾乎所有鍵盤鼠標(biāo)事件的鉤子類完整實例
- 01-10C# winform 模擬鍵盤輸入自動接入訪問網(wǎng)絡(luò)的實例
- 01-10C#中Socket與Unity相結(jié)合示例代碼
- 01-10C#實現(xiàn)JSON解析器MojoUnityJson功能(簡單且高效)
- 01-10Unity中C#和Java的相互調(diào)用實例代碼


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻 器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10C#中split用法實例總結(jié)
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什