public void ActiveDevice(DeviceTypeList Type) { switch (Type) { case DeviceTypeList.KAT_WALK: KATDevice_Dll.KAT_Init(); if (target_Rig == null) { if (targetMoveObject.GetComponent <Rigidbody>()) { target_Rig = targetMoveObject.GetComponent <Rigidbody>(); } else { MovementStyle = MovementStyleList.Translate; Debug.LogWarning("未能找到目标移动对象上的Rigidbody组件,移动方式将转换为Translate。\nCan not find Rigidbody component in Movement Object, the Movement Style will be changed to Translate."); } } break; case DeviceTypeList.ComingSoon: break; default: break; } }
void TargetTransform(MovementStyleList Type) { //vrCameraRig.position = targetRotateObject.position; if (KATDevice_Walk.Instance.data_moveDirection > 0) { KATDevice_Walk.Instance.data_moveSpeed *= multiply; } else if (KATDevice_Walk.Instance.data_moveDirection < 0) { KATDevice_Walk.Instance.data_moveSpeed *= multiplyBack; } switch (Type) { #region Translate case MovementStyleList.Translate: //targetMoveObject.Translate(targetRotateObject.forward / 100 * KATDevice_Walk.Instance.data_moveSpeed * KATDevice_Walk.Instance.data_moveDirection); targetMoveObject.position += (targetRotateObject.forward / 100 * KATDevice_Walk.Instance.data_moveSpeed * KATDevice_Walk.Instance.data_moveDirection); targetRotateObject.localEulerAngles = new Vector3(targetRotateObject.localEulerAngles.x, KATDevice_Walk.Instance.data_bodyYaw, targetRotateObject.localEulerAngles.z); break; #endregion #region Velocity case MovementStyleList.Velocity: target_Rig.velocity = targetRotateObject.forward * KATDevice_Walk.Instance.data_moveSpeed * KATDevice_Walk.Instance.data_moveDirection; targetRotateObject.localEulerAngles = new Vector3(targetRotateObject.localEulerAngles.x, KATDevice_Walk.Instance.data_bodyYaw, targetRotateObject.localEulerAngles.z); break; #endregion default: break; } }