/// <summary> /// Add Force to the panel. /// </summary> /// <param name="force"></param> /// <param name="axis"></param> public void AddForce(float force, JCS_Axis axis) { if (force == 0.0f) { return; } Vector3 tempPos = Vector3.zero; switch (axis) { case JCS_Axis.AXIS_X: tempPos.x = force; break; case JCS_Axis.AXIS_Y: tempPos.y = force; break; case JCS_Axis.AXIS_Z: tempPos.z = force; break; } AddForce(tempPos); }
/// <summary> /// Do the movement. /// </summary> /// <param name="ax"></param> /// <param name="speed"></param> private void DoMovement(JCS_Axis ax, float speed) { switch (ax) { case JCS_Axis.AXIS_X: this.transform.position += new Vector3(speed, 0, 0) * Time.deltaTime; break; case JCS_Axis.AXIS_Y: this.transform.position += new Vector3(0, speed, 0) * Time.deltaTime; break; case JCS_Axis.AXIS_Z: this.transform.position += new Vector3(0, 0, speed) * Time.deltaTime; break; } }
/// <summary> /// Find the point on the circle line base on the degree. /// </summary> /// <param name="objPos"> Current effect object's position. </param> /// <param name="origin"> origin point. </param> /// <param name="deg"> degree </param> /// <param name="radius"> radius from the origin. </param> /// <param name="axis"> Around which axis? </param> /// <returns> Vector3 : point on the circle. </returns> public static Vector3 CirclePosition(Vector3 origin, float deg, float radius, Vector3 objPos, JCS_Axis axis) { deg = deg % 360.0f; float rad = DegreeToRadian(deg); Vector3 circlePos = origin; // add offset to current distance (hyp) float hyp = radius; float opp = Mathf.Sin(rad) * hyp; float adj = Mathf.Cos(rad) * hyp; switch (axis) { case JCS_Axis.AXIS_X: circlePos.x = objPos.x; circlePos.y += adj; circlePos.z += opp; break; case JCS_Axis.AXIS_Y: circlePos.x += adj; circlePos.y = objPos.y; circlePos.z += opp; break; case JCS_Axis.AXIS_Z: circlePos.x += adj; circlePos.y += opp; circlePos.z = objPos.z; break; } return(circlePos); }