본문 바로가기

프로그램/유니티 스크립트 소스

[유니티 스크립트 소스] Flying Object 키보드 단순 제어

728x90
반응형

1. 소스

키보드로 비행기 또는 카메라를 제어하는 코드 입니다.

충돌 인식이나 비행 다이나믹스 등은 전혀 적용 되지 않고, 그냥 키보드의 값만을 받아서 이동합니다.

출발, 정지, 회전, 속도 증가, 감소의 기능이 있습니다.

 

시작시 스페이스키를 입력해야 출발합니다.

 

using UnityEngine; 

public class FlyingObjectSimpleController : MonoBehaviour 
{ 
    public KeyCode m_PitchPlus = KeyCode.W, 
        m_PitchMinus = KeyCode.S, 
        m_YawPlus = KeyCode.A, 
        m_YawhMinus = KeyCode.D, 
        m_RollPlus = KeyCode.Q, 
        m_RollMinus = KeyCode.E, 
        m_Move = KeyCode.Space, 
        m_SpeedUp = KeyCode.PageUp, 
        m_SpeedDown = KeyCode.PageDown; 

    public float m_Speed = 10, m_MaxSpeed = 200, m_ChangeStep = 10,  m_RotateSpeed = 30;     
    bool m_IsMove; 
     
    void FixedUpdate() 
    { 
        Move(); 
    } 

    void Move() 
    {    
        // 회전 
        if (Input.GetKey(m_PitchPlus)) 
            transform.Rotate(Vector3.left * Time.deltaTime * m_RotateSpeed, Space.Self); 

        if (Input.GetKey(m_PitchMinus)) 
            transform.Rotate(-Vector3.left * Time.deltaTime * m_RotateSpeed, Space.Self); 

        if (Input.GetKey(m_YawPlus)) 
            transform.Rotate(Vector3.down * Time.deltaTime * m_RotateSpeed, Space.Self); 

        if (Input.GetKey(m_YawhMinus)) 
            transform.Rotate(-Vector3.down * Time.deltaTime * m_RotateSpeed, Space.Self); 

        if (Input.GetKey(m_RollPlus)) 
            transform.Rotate(Vector3.forward * Time.deltaTime * m_RotateSpeed, Space.Self); 

        if (Input.GetKey(m_RollMinus)) 
            transform.Rotate(-Vector3.forward * Time.deltaTime * m_RotateSpeed, Space.Self); 
                        
        // 속도 제어 
        if (Input.GetKeyDown(m_SpeedUp)) 
            m_Speed += m_ChangeStep; 

        if (Input.GetKeyDown(m_SpeedDown)) 
            m_Speed -= m_ChangeStep; 

        m_Speed = Mathf.Clamp(m_Speed, 0, m_MaxSpeed); 

        // 출발, 정지 
        if (Input.GetKeyDown(m_Move)) 
            m_IsMove = !m_IsMove; 

        if (m_IsMove) 
            transform.position += transform.forward * Time.deltaTime * m_Speed; 
    } 
}

 

2. Pitch, Roll, Yaw

코더제로 유니티 스크립트 소스 Flying Object 키보드 단순 제어
그림. Flying Object 키보드 단순 제어

 

3. 데모

 

 

728x90
반응형