전체 무브먼트 코드입니다.





public class MoveControll : MonoBehaviour {


    public float Mspeed = 0.0f;

    public float Jspeed = 0.0f;

    public float MouseSense = 0.0f;

    public float updownRange = 90;


    public AudioClip flashsound;

       

    private float Rotleftright;

    private float Rotvertical;

    private bool isjump = false;

    private Rigidbody rigid;

    


// Use this for initialization

void Start () {

        rigid = GetComponent<Rigidbody>();

        

    }

// Update is called once per frame

void Update () {

       if (Input.GetButtonDown("flashlight"))

        {

            flash();

        }

    }


    void FixedUpdate()

    {

        Move();

        Jump();

        Rotate();

    }


    void Move()

    {

        

        if (Input.GetAxisRaw("Horizontal") > 0)

        {

            transform.Translate(Vector3.right * Mspeed * Time.deltaTime);

            

        }

        else if (Input.GetAxisRaw("Horizontal") < 0)

        {

            transform.Translate(Vector3.left * Mspeed * Time.deltaTime);

            

        }

        else if (Input.GetAxisRaw("Horizontal") == 0)

        {

            

        }

        if (Input.GetAxisRaw("Vertical") > 0)

        {

            transform.Translate(Vector3.forward * Mspeed * Time.deltaTime);

            StartCoroutine("footstep");

        }

        else if (Input.GetAxisRaw("Vertical") < 0)

        {

            transform.Translate(Vector3.back * Mspeed * Time.deltaTime);

            StartCoroutine("footstep");

        }

        else if (Input.GetAxisRaw("Vertical") == 0)

        {

            

        }

    }

    void Jump()

    {

        if (Input.GetButtonDown("Jump"))

        {

            if (isjump == true)

                return;

            else if (isjump == false)

            {

                rigid.AddForce(Vector3.up * Jspeed, ForceMode.Impulse);

                isjump = true;

            }

        }

    }

    void Rotate()

    {

        //좌우 회전

        Rotleftright = Input.GetAxis("Mouse X") * MouseSense;

        transform.Rotate(0f, Rotleftright, 0f);


        //상하 회전

        Rotvertical -= Input.GetAxis("Mouse Y") * MouseSense;

        Rotvertical = Mathf.Clamp(Rotvertical, -updownRange, updownRange);

        Camera.main.transform.localRotation = Quaternion.Euler(Rotvertical, 0f, 0f);

    }

    void OnCollisionEnter(Collision col)

    {

        if (col.gameObject.tag == "Ground")

        {

           isjump = false;

        }

    } 

    void flash()

    {

        if(GameObject.Find("Spotlight").GetComponent<Light>().enabled == false)

        {

            GameObject.Find("Spotlight").GetComponent<Light>().enabled = true;

            AudioSource.PlayClipAtPoint(flashsound,transform.position);


        }

        else

        {

            GameObject.Find("Spotlight").GetComponent<Light>().enabled = false;

            AudioSource.PlayClipAtPoint(flashsound, transform.position);

        }

    }


    IEnumerator footstep()

    {

        GetComponent<AudioSource>().Play();

        yield return new WaitForSeconds(0.3f);

        GetComponent<AudioSource>().Play();

    }


}