[Unity]BallGame

까말·2020년 9월 7일
0

게임시작화면

BallGame

유니티 튜토리얼에 비슷한 게임이 있지만, 거기서 한단계 업그레이드 되어 만든 게임.

Vector3 함수

  • 벡터는 크기와 방향을 나타낼 수 있는 데이터 타입으로, 그중에서 각 축의 크기가 1인 벡터를 단위벡터(정규화된 벡터, Normalized Vector)라 한다.
Vector3(0, 0, 0) // x축, y축, z축
ex) float h = Input.GetAxisRaw("Horizontal");
    float v = Input.GetAxisRaw("Vertical");
    rigid.AddForce(new Vector3(h, 0, v), ForceMode.Impulse);

InputManager 함수

Input.GetAxis("Horizontal"); //Left, Right를 눌렀을때 -1.0f~1.0f까지의 값을 반환한다.
Input.GetAxis("Vertical"); //Up, Down을 눌렀을때 -1.0f~1.0f까지의 값을 반환한다.

Script창에서 Public로 작성된 변수

ex) public float jumpPower = 30;

  • public로 변수를 선어하게 되면 Inspector에 노출된다.
  • Script에서 변수를 선언해도 Inspector에서 변수값을 바꾸는게 우선순위로 적용된다.

Rotate 함수

  • Rotate(회전할 기준좌표축 Time.deltaTime 회전 속도 * 변위입력 값)
  • Space.World를 추가 해주지 않으면 실제로는 물체가 회전하고 있지만, 시각적으로는 보이지 않는다.
ex) transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime, Space.World);

Item 공에 Rotate Space.World 적용한 모습

MainCamera

  • 아래스크립트를 작성 후 메인카메라에 임포트 시켜주면 메인 카메라가 PlayerBall을 따라다닌다.
 Transform playerTransform;
 Vector3 offset;

    void Start()
    {
        //따라다닐 물체의 Tag이름
        playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
        offset = transform.position - playerTransform.position; 
    }

    void LateUpdate()
    {
        //offset 해줘야 벡터 일정거리 유지하면서 따라다님
        transform.position = playerTransform.position + offset;
    }

메인카메라가 Player 따라다니는 모습

Collision 함수

//스크립트가 달린 물체(A)가 다른 콜라이더를 가진 태그된 물체(B)와 "닿았을 때"를 의미합니다.
private void OnCollisionEnter(Collision collision){}

//Trigger은 물리적 연산을 하지않고 충돌을 감지한다.
//TriggerEnter로 할 경우 Inspector에서 Is Trigger 체크해줘야 한다.
//Is Trigger를 하지않으면 물체가 통과된다,
void OnTriggerEnter(Collider other)
    {	//충돌할 Item tag명
        if (other.tag == "Item")
        {
            //닿으면 삭제
            other.gameObject.SetActive(false);
        }
    }

PlayerBall과 ItemObject가 충돌

Scene이동

  • 스크립트에서 using UnityEngine.SceneManagement을 추가해야 SceneManager 사용 가능.
  • SceneManager.LoadScene(씬이름); 으로 Collision 발생했을때 사용.

Play 영상

profile
취업준비중........!!

0개의 댓글