Example #1
0
 //===[自轴旋转]======
 /// <summary>
 /// 电机运行:欧拉角操控式自转(相对于自身坐标系的轴旋转)
 /// </summary>
 /// <param name="OriginEulerAngle">物体欧拉角(transform.eulerAngles)</param>
 /// <param name="direction">方向(Vector3.up)</param>
 /// <param name="Time_deltaTime">时间参数</param>
 /// <returns>return : 电机组件</returns>
 public SD_Motor_EulerAngle Run_ShaftControlled(Vector3 OriginEulerAngle, Vector3 direction, float Time_deltaTime)
 {
     if (MotorActivation)
     {
         MotorSave = SS_EulerAngleRotation.EulerAngles_AxisRotation(OriginEulerAngle, direction * MotorSpeed * Time_deltaTime);
     }
     return(this);
 }
Example #2
0
 /// <summary>
 /// 欧拉角插值旋转
 /// </summary>
 /// <param name="TargetEulerAngle">目标欧拉角</param>
 /// <param name="RotatingMoveSpeed">旋转速度</param>
 /// <param name="space">坐标系</param>
 public static void SE_EulerAngles_Lerp(this Transform transform, Vector3 TargetEulerAngle, float RotatingMoveSpeed, Space space = Space.World)
 {
     if (space == Space.World)
     {
         transform.eulerAngles = SS_EulerAngleRotation.EulerAngles_Lerp(transform.eulerAngles, TargetEulerAngle, RotatingMoveSpeed);
     }
     else
     {
         transform.localEulerAngles = SS_EulerAngleRotation.EulerAngles_Lerp(transform.localEulerAngles, TargetEulerAngle, RotatingMoveSpeed);
     }
 }
Example #3
0
        /// <summary>
        /// 欧拉角平滑旋转
        /// </summary>
        /// <param name="TargetEulerAngle">目标欧拉角</param>
        /// <param name="MoveTime">旋转时间</param>
        /// <param name="space">坐标系</param>
        /// <returns>旋转速度</returns>
        public static Vector3 SE_EulerAngles_SmoothDamp(this Transform transform, Vector3 TargetEulerAngle, float MoveTime, Space space = Space.World)
        {
            Vector3 yVelocity = new Vector3();

            if (space == Space.World)
            {
                transform.eulerAngles = SS_EulerAngleRotation.EulerAngles_SmoothDamp(transform.eulerAngles, TargetEulerAngle, ref yVelocity, MoveTime);
            }
            else
            {
                transform.localEulerAngles = SS_EulerAngleRotation.EulerAngles_SmoothDamp(transform.localEulerAngles, TargetEulerAngle, ref yVelocity, MoveTime);
            }

            return(yVelocity);
        }
Example #4
0
 /// <summary>
 /// 电机运行 : 平滑旋转
 /// </summary>
 /// <returns>电机</returns>
 public SD_Motor_EulerAngle Run_SmoothDampAngle()
 {
     MotorSave = SS_EulerAngleRotation.EulerAngles_SmoothDamp(MotorSave, MotorTarget, ref MotorVelocity, MotorSpeed);
     return(this);
 }
Example #5
0
 /// <summary>
 /// 电机运行 : 差值旋转
 /// </summary>
 /// <param name="Time_deltaTime">时间参数</param>
 /// <returns>电机</returns>
 public SD_Motor_EulerAngle Run_LerpAngle(float Time_deltaTime)
 {
     MotorSave = SS_EulerAngleRotation.EulerAngles_Lerp(MotorSave, MotorTarget, MotorSpeed * Time_deltaTime);
     return(this);
 }