본문 바로가기
C#

[C#][Unity] 2D 오브젝트 제거시 아이템드랍

by teamnova 2022. 11. 13.

안녕하세요.

오늘은 오브젝트 제거시 아이템이 나오는 예제를 진행하겠습니다.

더보기

기존예제인 클릭으로 2D오브젝트 제거하기에서 이어지는 예제입니다.

https://stickode.tistory.com/610

 

먼저 드랍될 오브젝트를 생성합니다.

그리고 제거되는 오브젝트의 스크립트 파일을 추가합니다.

(기존예제에서 TreeCuttable.cs 로 진행했던 파일을 수정하시면 됩니다)

 

//TreeCuttable.cs

public class TreeCuttable : ToolHit
{ 
    [SerializeField] GameObject pickUpDrop;
    [SerializeField] int dropCount = 5; //아이템 드랍수
    [SerializeField] float spread = 0.7f; // 퍼지는 범위
    public override void Hit()
    {  
        while(dropCount >0){
            dropCount -= 1;
            Vector3 position = transform.position;
            position.x += spread * UnityEngine.Random.value - spread /2; //아이템 랜덤배치
            position.y += spread * UnityEngine.Random.value - spread /2; //아이템 랜덤배치
            GameObject go = Instantiate(pickUpDrop); //아이템을 새로 생성(인스턴스 선언)
            go.transform.position = position; //위에서 랜덤으로 만든 x,y 위치에 아이템 놓기
        }
        Destroy(gameObject);
    }
}

 

드랍할 오브젝트를 계층구조에서 프로젝트로 드래그하시면 오브젝트파일로 생성됩니다.

 

그렇게 생성한 드롭아이템을 제거될 오브젝트의 컴포넌트 중 TreeCuttable 스크립트 Pick Up Drop 에 넣어줍니다.

 

 

 

'C#' 카테고리의 다른 글

[C#][Unity] 2D 아이템 자동습득  (0) 2022.11.28
[C#][Unity] SetActive와 enabled  (0) 2022.11.16
[C#][Unity] 점프 샘플 코드  (0) 2022.11.05
[C#][Unity] 로그 찍기  (0) 2022.11.01
[C#][Unity] 클릭으로 2D 오브젝트 제거하기  (0) 2022.10.29