기초만 꾹꾹 눌러 담은 3d 게임 만들기

//출처는 골드메탈님 강의입니다!

Rotate

  • 오버로드
    : 함수명은 같지만, 매개변수가 다른 함수.

Rotate함수는 오버로드 함수가 5개 있다. + 디폴트

  • 아이템의 기울기를 기운 상태에서 월드 좌표에서 회전시키고 싶을 때

=> 이렇게 진행하면 아이템의 로컬좌표계에서 회전이 된다.

//위의 것으로 회전하면 new를 선언해야 한다. 
//transform.Rotate(new Vector3(0, 10, 0));

//단위 벡터 사용한다면 new 필요없이 사용 가능하다. 
transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime);
  • 월드좌표계를 기준으로 돌리기
public float rotateSpeed;
    
void Update()
{   
    transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime, Space.World);
}

Tag

: 오브젝트를 구분하는 단순한 문자열

  • 게임 오브젝트의 이름으로 조건 받아서 진행하면 발생되는 문제가 있다.

  • 게임 오브젝트가 이렇게 많이 있다면 어떻게 처리를 할것인지에 대한 문제가 있다. 이때는 Tag를 사용하자.

-> Tag로 지정하면 동일한 형태의 오브젝트에서의 사용에 문제 없다.

Camera

  • LateUpdate를 사용하자
    : UI나 카메라 변환에 사용된다. 업데이트 연산 후에 뒤에 따라 붙어야 하므로!

  • 우리가 하려는 것은 플레이어를 따라다니는 카메라를 만들려고 한다.
    플레이어는 유니티 내부의 게임 컴포넌트가 아니므로 GetComponent를 사용하는 것이 아니라 다른 함수를 사용하자.

GameObject.FindGameObjectWithTag("Player")

public class CameraMove : MonoBehaviour
{
    Transform player;
    Vector3 offset;
    void Awake()
    {
        //주어진 태그로 오브젝트를 검색한다. 
        player = GameObject.FindGameObjectWithTag("Player").transform;
        offset = transform.position - player.position;
    }

    // Update is called once per frame
    void LateUpdate()
    {
    //offset 없이 진행하면 플레이어의 위치와 계속 동일하므로 공의 위치에서 바라본다... 
    //좀 떨어져야 한다.
        transform.position = player.position + offset;
    }
}

Goal 지점

  • 결승점은 충돌 처리 안시키기 위해서 IsTrigger 활성화시킴.

  • Emission 값을 조정해서 화려하게 만들자!

  • 형태가 없고 전반적인 로직을 가진 오브젝트를 매니저로 지정한다.

장면 이동

using UnityEngine.SceneManagement;를 포함시키자.

//주어진 장면을 불러오는 함수.
SceneManager.LoadScene("Example1");

//새로운 신을 추가한 다음에 Build Setting에 추가해야 한다.

  • Builging Setting 까지 해야한다.

좋은 웹페이지 즐겨찾기