public void init(bool isRotate, float maxAngle, float minAngle, float speed, RotateAxle axle) { this.maxAngle = maxAngle; this.minAngle = minAngle; this.roteSpeed = speed; this.rotateAxle = axle; this.isRot = isRotate; }
/// <summary> /// 自转 /// </summary> /// <param name="target">需要自转的对象</param> /// <param name="RotateSpeed">旋转速度</param> /// <param name="MyRotate_Axle">旋转轴</param> public static void RotateAroundSelf(Transform selfObj, float RotateSpeed, RotateAxle MyRotate_Axle) { switch (MyRotate_Axle) { case RotateAxle.X: selfObj.Rotate(new Vector3(1f, 0, 0) * RotateSpeed * Time.deltaTime, Space.Self); break; case RotateAxle.Y: selfObj.Rotate(new Vector3(0, 1f, 0) * RotateSpeed * Time.deltaTime, Space.Self); break; case RotateAxle.Z: selfObj.Rotate(new Vector3(0, 0, 1f) * RotateSpeed * Time.deltaTime, Space.Self); break; } }
/// <summary> /// 绕目标旋转 /// </summary> /// <param name="selfObj">作旋转的对象</param> /// <param name="RotateTargetObj">旋转运动目标</param> /// <param name="RotateSpeed">旋转速度</param> /// <param name="MyRotate_Axle">旋转轴</param> public static void RotateAroundTarget_Fixed(Transform selfObj, GameObject RotateTargetObj, float RotateSpeed, RotateAxle MyRotate_Axle) { switch (MyRotate_Axle) { case RotateAxle.X: selfObj.RotateAround(RotateTargetObj.transform.position, Vector3.right, RotateSpeed * Time.fixedDeltaTime); break; case RotateAxle.Y: selfObj.RotateAround(RotateTargetObj.transform.position, Vector3.up, RotateSpeed * Time.fixedDeltaTime); break; case RotateAxle.Z: selfObj.RotateAround(RotateTargetObj.transform.position, Vector3.forward, RotateSpeed * Time.fixedDeltaTime); break; } }