/// <summary> /// 旋转限制器 : 本地范围限制 【注:需要自由半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_EulerAngle Constraint_Angle_Local_Scope() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_EulerAngle(MotorSave, -Limit_RadiusFree, Limit_RadiusFree, Constraint_X, Constraint_Y, Constraint_Z); } return(this); }
/// <summary> /// 旋转限制器 : 本地限制【注:需要限制数值】 /// </summary> /// <returns>电机</returns> public SD_Motor_EulerAngle Constraint_Angle_Local() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_EulerAngle(MotorSave, Limit_Min, Limit_Max, Constraint_X, Constraint_Y, Constraint_Z); } return(this); }
/// <summary> /// 欧拉角约束 /// </summary> /// <param name="Limit_Min">最小值</param> /// <param name="Limit_Max">最大值</param> /// <param name="Limit_X">X轴限制激活</param> /// <param name="Limit_Y">Y轴限制激活</param> /// <param name="Limit_Z">Z轴限制激活</param> /// <param name="space">坐标系</param> public static void SE_EulerAngles_Constraint(this Transform transform, Vector3 Limit_Min, Vector3 Limit_Max, bool Limit_X = true, bool Limit_Y = true, bool Limit_Z = true, Space space = Space.World) { if (space == Space.World) { transform.eulerAngles = SS_VectorConstraint.Constraint_EulerAngle(transform.eulerAngles, Limit_Min, Limit_Max, Limit_X, Limit_Y, Limit_Z); } else { transform.localEulerAngles = SS_VectorConstraint.Constraint_EulerAngle(transform.localEulerAngles, Limit_Min, Limit_Max, Limit_X, Limit_Y, Limit_Z); } }