/// <summary> /// 旋转限制器 : 目标范围限制【注:需要半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Angle Constraint_Angle_Target_Scope() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Angle_Complete_Scope(MotorSave, MotorTarget, Limit_Radius); } return(this); }
/// <summary> /// 移动限制器 : 目标范围限制【注:需要半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector1 Constraint_Vector_Target_Scope() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector1_Scope(MotorSave, MotorTarget, Limit_Radius); } return(this); }
/// <summary> /// 移动限制器 : 本地限制【注:需要限制数值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector3 Constraint_Vector_Local() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector3(MotorSave, Limit_Min, Limit_Max, 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> /// <returns>电机</returns> public SD_Motor_Vector1 Constraint_Vector_Target() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector1(MotorSave, MotorTarget + Limit_Min, MotorTarget + Limit_Max); } return(this); }
/// <summary> /// 移动限制器 : 本地限制【注:需要限制数值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector1 Constraint_Vector_Local() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector1(MotorSave, Limit_Min, Limit_Max); } return(this); }
/// <summary> /// 移动限制器 : 本地范围限制【注:需要半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector1 Constraint_Vector_Local_Scope() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector1_Scope(MotorSave, 0, Limit_Radius); } return(this); }
/// <summary> /// 移动限制器 : 本地范围限制(自由范围限制)【注:需要自由半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector2 Constraint_Vector_Local_Scope_Free() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector2(MotorSave, -Limit_RadiusFree, Limit_RadiusFree, Constraint_X, Constraint_Y); } return(this); }
/// <summary> /// 移动限制器 : 目标范围限制(自由半径范围限制)【注:需要自由半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector2 Constraint_Vector_Target_Scope_Free() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector2(MotorSave, MotorTarget - Limit_RadiusFree, MotorTarget + Limit_RadiusFree, Constraint_X, Constraint_Y); } return(this); }
/// <summary> /// 移动限制器 : 目标限制 【注:需要限制数值】 /// 注:需要限制范围值 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector3 Constraint_Vector_Target() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector3(MotorSave, MotorTarget + Limit_Min, MotorTarget + Limit_Max, Constraint_X, Constraint_Y, Constraint_Z); } return(this); }
/// <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_Angle Constraint_Angle_Target() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Angle_Complete(MotorSave, MotorTarget + Limit_Min, MotorTarget + Limit_Max); } return(this); }
/// <summary> /// 旋转限制器 : 本地全面角度限制【注:需要限制数值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Angle Constraint_Angle_Complete_Local() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Angle_Complete(MotorSave, Limit_Min, Limit_Max); } return(this); }
/// <summary> /// 旋转限制器 : 本地范围限制【注:需要半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Angle Constraint_Angle_Local_Scope() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Angle(MotorSave, -Limit_Radius, Limit_Radius); } 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_Position_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.position = SS_VectorConstraint.Constraint_Vector3(transform.position, Limit_Min, Limit_Max, Limit_X, Limit_Y, Limit_Z); } else { transform.localPosition = SS_VectorConstraint.Constraint_Vector3(transform.localPosition, Limit_Min, Limit_Max, Limit_X, Limit_Y, Limit_Z); } }
/// <summary> /// 三维向量球形范围约束 /// </summary> /// <param name="TargetPoint">约束点</param> /// <param name="Limit_Radius">限制半径</param> /// <param name="space">坐标系</param> public static void SE_Position_Constraint_Scope(this Transform transform, Vector3 TargetPoint, float Limit_Radius, Space space = Space.World) { if (space == Space.World) { transform.position = SS_VectorConstraint.Constraint_Vector3_Scope(transform.position, TargetPoint, Limit_Radius); } else { transform.localPosition = SS_VectorConstraint.Constraint_Vector3_Scope(transform.localPosition, TargetPoint, Limit_Radius); } }
/// <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); } }
/// <summary> /// 移动限制器 : 本地限制【注:需要限制数值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector2 Constraint_Vector_Local() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector2(MotorSave, Limit_Min, Limit_Max, Constraint_X, Constraint_Y); } // else 软回弹 // { // MotorTarget = SS_VectorConstraint.Constraint_Vector2(MotorTarget, Limit_Min, Limit_Max, Constraint_X, Constraint_Y); // } 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> public static void SE_Scale_Constraint(this Transform transform, Vector3 Limit_Min, Vector3 Limit_Max, bool Limit_X = true, bool Limit_Y = true, bool Limit_Z = true) { transform.localScale = SS_VectorConstraint.Constraint_Vector3(transform.localScale, Limit_Min, Limit_Max, Limit_X, Limit_Y, Limit_Z); }