VR飞机项目2016/9/19-25获取按键输入(虚拟按键等)
来源:互联网 发布:模拟人生4捏帅哥数据 编辑:程序博客网 时间:2024/06/05 02:03
通过虚拟摇杆控制飞机的左右上下,这次没有使用控制rotation上的xyz3个轴的值来实现,而是通过每帧增加一个增量来实现
mainRot = this.transform.rotation;.AddRot.eulerAngles = new Vector3 (pitch, yaw, -roll);mainRot *= AddRot;transform.rotation = Quaternion.Lerp (transform.rotation, mainRot, Time.fixedDeltaTime * RotationSpeed);
<span style="white-space:pre"></span>public void AxisControl (Vector2 axis){if (SimpleControl) {LimitAxisControl.y = LimitAxisControl.x;}roll = Mathf.Lerp (roll, Mathf.Clamp (axis.x, -LimitAxisControl.x, LimitAxisControl.x) * SpeedRoll, Time.deltaTime);pitch = Mathf.Lerp (pitch, Mathf.Clamp (axis.y, -LimitAxisControl.y, LimitAxisControl.y) * SpeedPitch, Time.deltaTime);}
<span style="white-space:pre"></span>public void TurnControl (float turn){yaw += turn * Time.deltaTime * SpeedYaw;}
flight.AxisControl (new Vector2 (Input.GetAxis ("Mouse X"), Input.GetAxis ("Mouse Y")));flight.TurnControl(Input.GetAxis("VirtualAxisX"));flight.TurnControl (Input.GetAxis ("Horizontal"));
如果想要固定某个轴,不让在这个轴上旋转,可以以下代码实现,实现固定某个轴
if (SimpleControl) { Quaternion saveQ = mainRot; <span style="color:#009900;">//先用saveQ记录下来这一帧的Quaternion //再记录下这一帧的angle</span> Vector3 fixedAngles = new Vector3 (mainRot.eulerAngles.x, mainRot.eulerAngles.y, mainRot.eulerAngles.z); if(FixedX) <span style="color:#009900;">//bool值,如果固定X轴,就让angle对应的值为1</span> fixedAngles.x = 1; if(FixedY) fixedAngles.y = 1; if(FixedZ) fixedAngles.z = 1; <span style="color:#009900;">//算出固定轴以后的Quaternion,然后让物体从现在的Quaternion旋转到固定某个轴以后的Quaternion</span> saveQ.eulerAngles = fixedAngles; mainRot = Quaternion.Lerp (mainRot, saveQ, Time.fixedDeltaTime * 2); }
获取虚拟按键的方法
public void DetectPressedKeyOrButton() { foreach (KeyCode kcode in Enum.GetValues(typeof(KeyCode))) { if (Input.GetKeyDown(kcode)) { Debug.Log("KeyCode down: " + kcode); } } }
使用了刚体的子弹,想让子弹朝目标有偏差的设计,可以用以下方法
Vector3spread = newVector3(Random.Range(-Spread, Spread), Random.Range(-Spread, Spread), Random.Range(-Spread, Spread)) / 100;Vector3 direction = this.transform.forward + spread;GameObject bullet = (GameObject)Instantiate(Missile, missileposition, missilerotate);bullet.transform.forward = direction;
0 0
- VR飞机项目2016/9/19-25获取按键输入(虚拟按键等)
- 获取虚拟按键、状态栏等高度;
- 获取虚拟按键、状态栏等高度
- 虚拟按键
- AR/VR learning (3)--虚拟按键(virtualButton)的测试与使用
- Android 获取虚拟按键的高度
- 获取Android手机屏幕宽高(虚拟按键)
- 隐藏与显示华为等有虚拟按键手机的虚拟按键
- 按键获取
- 获取游戏手柄的按键输入
- Mstar虚拟按键触摸屏驱动(芯片msg2133,按键使用android虚拟按键实现,特定报点,识别为按键)
- 获取屏幕大小、获取底部虚拟按键高度
- 4412按键驱动移植(按键对应Android系统的三个虚拟按键)
- 解决安卓端虚拟按键盖住输入框的方法
- 按键输入-GPIO输入
- android虚拟按键和沉浸式状态栏冲突等代码解决方案(eg:死坑华为)
- 如何发送虚拟按键,比如HOME键等
- 虚拟键盘对照表(KEY 按键)
- java 判断参数中是否以特殊字符开头
- Windows下配置Git(git命令会提示“不是内部或外部命令)
- 世界上最难走的路,永远是歪总的套路!
- 用QCameraInfo获取摄像头名称示例
- 演示Map,映射-键值対-02
- VR飞机项目2016/9/19-25获取按键输入(虚拟按键等)
- 数组去重和排序,可以用TreeSet直接做
- 获取手机的经纬度
- MFC中对话框的各种消息触发时间
- 防止点击Home健后App在后台运行,点击应用桌面图标重新启动程序的办法
- 【Web】了解springMVC运行原理
- dubbo 服务提供者仅订阅而不注册
- AndroidStudio moudle 依赖一个jar包的解决办法
- Hadoop 50070端访问不了