[Unity Tutorial Roll-a-ball 06] Collecting the Pick Up Objects

1. 플레이어 컨트롤러 스크립트에 충돌 트리거 추가

 public class PlayerController : MonoBehaviour {

    // 에디터 안 Inspector에서 편집 가능한 속도 조정 변수 생성
    public float speed;
    // Rigidbody 형태의 변수 생성
    private Rigidbody rb;

    // 스크립트가 활성화된 첫 프레임에 호출
    void Start()
    {
        // 현재 오브젝트의 Rigidbody를 참조
        rb = GetComponent<Rigidbody>();
    }

    // 프레임을 렌더링 하기 전에 호출
    void Update()
    {

    }

    // 물리효과 계산을 수행하기 전에 호출
    void FixedUpdate()
    {
        // 키보드의 키로 컨트롤하는 수평 축의 입력 (left, right)
        float moveHorizontal = Input.GetAxis("Horizontal");
        // 키보드의 키로 컨트롤하는 수직 축의 입력 (up, down)
        float moveVertical = Input.GetAxis("Vertical");

        // 플레이어의 이동량을 선언 (x축, y축, z축)
        Vector3 movemnet = new Vector3(moveHorizontal, 0, moveVertical);
        // 플레이어의 Rigidbody에서 movement 값만큼 힘을 가해서 이동시킴
        rb.AddForce(movemnet * speed);
    }

    // 트리거 콜라이더를 처음 접촉할 때 호출
    void OnTriggerEnter(Collider other)
    {
        // 오브젝트의 태그 값 비교
        if ( other.gameObject.CompareTag("PickUp"))
        {
            // 오브젝트 비활성화
            other.gameObject.SetActive(false);
        }       
    }
}

2. PickUp 오브젝트에 PickUp 태그 달기

Prefabs PickUp -> Inspector -> Tag -> AddTag

Tags -> PickUp 태그 추가

PickUp -> Tag -> PickUp 선택

3. PickUp 오브젝트에 충돌 트리거 활성화

Prefabs PickUp -> Box Collider -> Is Trigger 체크 박스 활성화

4. PickUp 오브젝트에 물리 엔진 추가 (PickUp 오브젝트 애니메이션 최적화)

Prefabs PickUp -> Add Component -> Physics -> Rigidbody -> Is Kinematic 체크 박스 활성화

 

 

-Reference

[Collecting the Pick Up Objects] https://unity3d.com/kr/learn/tutorials/projects/roll-ball-tutorial/collecting-pick-objects?playlist=17141

+ Recent posts