/// <summary> /// 移动限制器 : 目标范围限制(自由半径范围限制)【注:需要自由半径值】 /// </summary> /// <returns>电机</returns> public SD_Motor_Vector3 Constraint_Vector_Target_Scope_Free() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector3(MotorSave, MotorTarget - Limit_RadiusFree, MotorTarget + Limit_RadiusFree, Constraint_X, Constraint_Y, Constraint_Z); } 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_Vector3 Constraint_Vector_Local_Scope_Free() { if (MotorConstraint) { MotorSave = SS_VectorConstraint.Constraint_Vector3(MotorSave, -Limit_RadiusFree, Limit_RadiusFree, Constraint_X, Constraint_Y, Constraint_Z); } 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> /// <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="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); }