초코/Unity

Unity -2D 모바일 게임 만들기 3

알 수 없는 사용자 2021. 4. 9. 18:48

안녕하세요 멍남매 초코입니다.

 

이번 포스팅은 같은 색의 상자를 클릭하면 사라지게 되게 만들겠습니다.

그럼 스크립트를 생성하겠습니다. 각각 Blcok, Click 스크립트를 생성합니다.

스크립트 생성

 

 

 

 

Blcok 스크립트부터 작성할 건 public int num; 이거만 선언하고 끝입니다.

num 선언

 

 

 

 

그 다음에 이전에 만들었던 Create 스크립트로 가겠습니다.

먼저 바뀐 부분들입니다.

 

먼저 int num, int i, GameObject obj, Block blockScript, List<GameObject> BlockList = new List<GameObject>()

이 부분이 새로 생겼습니다. 

 

 

 

obj 역할은 Instantiate로 생성되는 오브젝트를 저장하고 리스트인 BlockList에 추가합니다.

blockScript는 저장한 obj의 스크립트를 불러오고 불러온 스크립트의 num의 값을 변경합니다.

 

 

 

 

이제 Click 스크립트에서 GameObject temp, bool on = false 선언을 하고

 

 

 

 

마우스 왼버튼으로 했을 때 그 위치를 저장하고 RaycastHit2D로 hit에 오브젝트의 정보를 담습니다.

그리고 hit에 정보가 있을 때, on이 false일 때 temp에 해당 오브젝트를 담아두고 on을 true로 바꿉니다.

오브젝트 정보 얻기

 

 

 

 

그 다음에 hit에 담긴 오브젝트의 태그와 temp에 담아둔 오브젝트의 태그가 같고, on이 true일 때, temp의 스크립트에 선언된 num 값과 hit의  num값이 다를 때 실행되는 if문으로 내용은 temp와 hit의 담긴 오브젝트를 삭제를 하는 것, on을 false로 바꾸는 내용입니다.

 

 

 

 

그리고 tag가 같지 않거나 num의 값이 다르면 on을 false로 바꿉니다.

 

 

 

 

유니티로 돌아와서 프리팹으로 만든 Block들에게 Script Block을 드래그해서 적용합니다.

 

 

 

 

Click 스크립트는 Manager에 적용합니다.

 

 

 

 

실행해보시기 전에 태그 생성해서 Block들에게 적용해야합니다. 안 그러면 색과 상관없이 자기만 아니면 사라집니다.

 

여기 까지 하셨다면 Block이 잘 사라지는 걸 확인할 수 있습니다.

이번 포스팅은 마우스로 같은 색의 Block을 없애는 내용이었습니다.