반응형

1. 시험환경

    · 윈도우

    · 유니티(Unity) 6.2

 

2. 목적

    · 기존 프로젝트 기반으로 신규 프로젝트를 만드는 방법을 알아보자.

    · Object(Wall) 의 충돌 감지 이벤트 발생시 색상이 변경되는 코드를 만들어 적용한다.

    · Object(Item) 의 충돌 감지 이벤트 발생시 사라지는 코드를 만들어 적용한다.

 

3. 적용

    ① 이전 프로젝트 -"사용자 입력(Input) 처리"를 복사하여 신규 프로젝트를 생성한다.

        - 이전 프로젝트 참고: https://languagestory.tistory.com/454

 

[Unity] 사용자 입력(Input) 처리

1. 시험환경 · 윈도우 · Unity 6.2 2. 목적 · 사용자의 키보드 입력에 따라 객체(Object)가 이동하도록 구성한다. · 만약, 객체가 이동하다가 Ground의 경계 지역을 벗어나면 중력의 영향을 받아 떨어지

languagestory.tistory.com

 

    ② 이전 프로젝트 폴더를 복사 후 폴더명 및 프로젝트 파일을 변경한다.

        - 원본 : chap04_KeyInputMove

        - 복사 : chap05_KeyboardMoveCollision

 

    ③ "Unity Hub"   "Projects 탭" "Add" → "Add project from disk"를 클릭하여 프로젝트를 추가한다.

        - 프로젝트 로드 후 "Play" 버튼을 클릭하여 프로젝트가 정상 동작하는지 확인한다.

 

    ④ "Hierarchy 창" → "마우스 우클릭 팝업메뉴" "3D Object" → "Cube"를 생성하여 벽(Wall)을 만든다.

        - 이름: Wall

        - Position: (0, 0.5, 4.5)

        - Scale: (7, 2, 0.5)

 

    ⑤ "Hierarchy 창" → "마우스 우클릭 팝업메뉴"  "3D Object" → "Sphere"를 생성하여 아이템을 만든다.

        - 이름: Item

        - Position: (-4, 0, 4)

        - Scale: (1, 1, 1)

        - Is Trigger (Sphere Collider): 체크

 

    ⑥ "Project 창" → "마우스 우클릭 팝업메뉴"  "CS 파일"을 생성한다.

        - 경로: Assets/Scripts/

        - 파일명: WallCollision.cs

        - 파일명: ItemTrigger.cs

 

    ⑦ 객체(Wall, Item) 충돌시 동작을 코딩한다.

        - 파일명: WallCollision.cs → Player가 Wall 충돌시 Wall 객체의 색상 변경 스크립트

        - 파일명: ItemTrigger.cs → Player가 Item 충돌시 Item 객체의 사라짐 스크립트

WallCollision.cs
  using UnityEngine;

  public class WallCollision : MonoBehaviour
  {
      private Renderer rend;

      void Start()
      {
          rend = GetComponent<Renderer>();
          rend.material.color = Color.gray;
      }

      void OnCollisionEnter(Collision collision)
      {
          if (collision.gameObject.CompareTag("Player"))
          {
              rend.material.color = Color.red;
          }
      }  
  }
ItemTrigger.cs
  using UnityEngine;

  public class ItemTrigger : MonoBehaviour
  {
      void OnTriggerEnter(Collider other)
      {
          if (other.CompareTag("Player"))
          {
              Destroy(gameObject);
          }
      }
  }

 

    ⑧ 작성한 WallCollision 스크립트 파일을 Wall 객체에 Drag&Drop 하여 임포트(Import) 시킨다.

        - 임포트: WallCollision.cs → Wall 객체

 

    작성한 ItemTrigger 스크립트 파일을 Item 객체에 Drag&Drop 하여 임포트(Import) 시킨다.

        - 임포트: ItemTrigger.cs → Item 객체

 

    ⑩ 코드에서 Tag 명을 "Player"로 비교하였으므로, Player 객체의 Tag를 "Player"로 설정한다.

 

4. 결과

    · "Play" 버튼으로 실행하여 Player 객체가 Wall 및 Item에 충돌함에 따라 변화되는 결과를 확인한다.

 

반응형

+ Recent posts