Study/Programming Math

[유니티] 삼각 함수로 원그리며 이동 하기

아낙시만더 2017. 12. 1. 18:19
반응형
using UnityEngine;
using System.Collections;

public class csFuction : MonoBehaviour {

    [SerializeField]
    float fR = 2;
    float MAXRADIAN = 360;
    float MINRADIAN = 0;
    [SerializeField]
    float fRadian = 0;
    [SerializeField]
    float fSpeed = 1;
    [SerializeField]
    Vector3 v3MovePos = Vector3.zero;
    [SerializeField]
    bool bAutoMove = false;

    Transform transMe = null;

	// Use this for initialization
	void Start () 
    {
        if (transMe == null)
            transMe = transform;
	}
	
	// Update is called once per frame
	void Update () 
    {
        if (bAutoMove)
        {
            if (fRadian > MAXRADIAN)
                fRadian = MINRADIAN;

            fRadian += Time.deltaTime * fSpeed;
        }

        // 추가 시킨 각도의 Radian를 구한다.
        float deRad = fRadian * Mathf.Deg2Rad;
        //Radian값으로 Sin과 Cos 값을 구한다.
        float sinValue = Mathf.Sin(deRad);
        float cosValue = Mathf.Cos(deRad);

        //Debug.Log(fRadian + " Mathf.Sin :" + sinValue + " Mathf.Cos :" + cosValue + deRad);

        // 반지름을 곱해 포인트 x,y값을 구한다.
        float y = 0;
        float x = 0;
        y = sinValue * fR;
        x = cosValue * fR;

        //이동
        transform.localPosition = new Vector3(x, y, 0) + v3MovePos;
	}
}
반응형