Uinty 第一次人称太空移动和旋转(键鼠操作)
来源:互联网 发布:gddr5x和hbm2知乎 编辑:程序博客网 时间:2024/05/17 08:31
本人Unity新人,此博客只是为了做笔记和分享,不对的地方请大伽指正
参照一些太空游戏,一般控制是:
鼠标左右,以自身Y轴进行旋转
鼠标上下,以自身X轴进行旋转
键盘AD,以自身Z轴进行旋转
键盘WS,控制物体前后移动
相关代码:
放进到Update里:
void RotateView() //鼠标控制旋转
{
//Input.GetAxis("Mouse X"); //获取鼠标水平方向
//Input.GetAxis("Mouse Y"); //获取鼠标垂直方向
transform.RotateAround(transform.up, rotateSpeed * Input.GetAxis("Mouse X"));//以自身Y轴旋转,速度是鼠标的X轴数值*一个速度变量值
transform.RotateAround(transform.right, -rotateSpeed * Input.GetAxis("Mouse Y"));
}
void Move() //移动
{
if (Input.GetKey(KeyCode.W))
{
if (Input.GetKeyDown(KeyCode.LeftShift))//按下W+左边Shift按键,则加速移动
{
moveSpeed = 6f;
}
if (Input.GetKeyUp(KeyCode.LeftShift)) //松开左边Shift按键,则恢复原来速度
{
moveSpeed = 3f;
}
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(Vector3.back * moveSpeed/2 * Time.deltaTime);
}
if (Input.GetKey(KeyCode.A)) //按下D以自身旋转,旋转速度是自定义速度的1/4
{
transform.RotateAround(transform.forward, -rotateSpeed/4);
}
if (Input.GetKey(KeyCode.D))
{
transform.RotateAround(transform.forward, rotateSpeed/4);
}
if (Input.GetKeyDown(KeyCode.Escape)) //按ESC退出游戏(发布后才能看出效果)
{
Application.Quit();
}
- Uinty 第一次人称太空移动和旋转(键鼠操作)
- uinty 天空盒 旋转
- Uinty时钟,和对物体移动速度的控制
- 关于canvas的移动和旋转操作
- uinty
- 移动广告+太空升降机
- 物体移动和旋转
- 移动和旋转模型
- unity移动端操作方式(旋转、缩放手势)总结
- uinty中对Xml文件的操作
- 从太空里俯视你的家---我和google地图的第一次
- libgdx的移动和旋转
- WebGL中的旋转和移动
- unity人物旋转和移动
- 坦克的移动和旋转
- 【iTween】单点移动和旋转
- uinty实现玩家跟随鼠标位置平滑旋转角度
- uinty本地图片的读取和剪裁
- testlink修改默认端口
- IBM Watson APIs Study Materials
- c++前向声明
- 共用体union用法
- UE4 VR PC 同时开发注意问题一
- Uinty 第一次人称太空移动和旋转(键鼠操作)
- php超全局变量
- spark学习
- Javascript严格模式
- 键盘类型
- Android高级开发必读书单
- CodeIgniter-Security的CSRF hash生成功能
- HTML JS转义字符
- iOS sha1加密方法(哈希算法,用于校验数据完整性)以及字符串中含有汉字的情况的加密方法