붕어빵을 만들기 위해서 가장 먼저 해야하는 것은 마우스로 오브젝트를 클릭했을때
클릭당한 게임오브젝트의 이름을 알아와야 하는 문제가 있습니다.
게임오브젝트를 하나 만들고, 스프라이트로 동그라미를 만들어서
동그라미가 마우스가 따라다니면서 움직이고,
클릭했을때 오브젝트의 정보를 가져오는 역할을 할 수 있는 스크립트를 먼저 작성해보겠습니다.
1) 마우스오브젝트가 마우스 따라다니게 하기
먼저 오브젝트와 스크립트를 만들자.
2D Object > Sprite 이름을 Mouse로 만들고,
position 0,0,0
scale 1.2,1.2,1
Order in Layer 10,
Sprite는 Knob으로 지정하자.
마우스를 팔로잉하는 함수는 아래에서 볼 수 있다.
https://allaboutmaker.tistory.com/41
MouseObject 스크립트에서 objectMove()를 복사해서 붙여 넣고, 실행해보자.
==============================
void objectMove(GameObject obj)
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 vec = new Vector3(mousePosition.x, mousePosition.y, 0);
obj.transform.position = vec;
} void Update()
{
objectMove(gameObject);
}
void objectMove(GameObject obj)
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 vec = new Vector3(mousePosition.x, mousePosition.y, 0);
obj.transform.position = vec;
}
==============================
2) 오브젝트 선언, 초기화하기 & 박스 콜라이더 컴포넌트 추가 & 레이어 정하기
레이케스트를 사용하려면 콜라이더가 있어야 감지할 수 있다.
사용해야할 오브젝트를 선언하고, 초기화해주자.
-----------------
public GameObject janggab; //장갑
public GameObject jooObject; //주전자
public GameObject potscopeObject; //팟스푼
public GameObject[] bongtoo; //봉투
public GameObject[] boonga; //붕어
-----------------
봉투,붕어 사이즈 6하자.
각각 요소에 맞춰서 오브젝트를 드래그해서 초기화 해보자.
이제 감지해야할 게임 오브젝트에 박스 콜라이더2D 컴포넌트를 추가해주자.
레이캐스트는 레이어를 기준으로 감지하기 때문에 미리 감지해야할 레이어를 정해준다.
Layer를 추가해서 이름을 boongObject로하고 레이어를 지정해주자.
3) 마우스 클릭했을때 오브젝트 이름 감지하기
마우스 클릭했을때 오브젝트 이름 감지하기 위해서 아래 링크에서 8) 정리부분에 코드를 드래그해서 배치하자.
https://allaboutmaker.tistory.com/44
마우스를 클릭했을때 오브젝트 이름을 console에 찍기
각각 위치에 맞게 배치하면 다음과 같다.
=======================
public GameObject janggab; //장갑
public GameObject jooObject; //주전자
public GameObject potscopeObject; //팟스푼
public GameObject[] bongtoo; //봉투
public GameObject[] boonga; //붕어
public Vector3[] vecPo;
public float length;
void Start()
{
length = 0.5f ;
vecPo[0] =new Vector3(length,0,0);
vecPo[1] =new Vector3(-length,0,0);
vecPo[2] =new Vector3(0,length,0);
vecPo[3] =new Vector3(0,-length,0);
}
void Update()
{
if (Input.GetMouseButtonDown (0)) {
FindObject();
}
objectMove(gameObject);
}
void objectMove(GameObject obj)
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 vec = new Vector3(mousePosition.x, mousePosition.y, 0);
obj.transform.position = vec;
}
void FindObject()
{
for(int index=0 ; index<vecPo.Length ; index++){
Debug.DrawRay(transform.position, vecPo[index], new Color(0,1,0));
RaycastHit2D hit = Physics2D.Raycast(transform.position, vecPo[index], 1f,
LayerMask.GetMask("boongObject"));
if(hit.collider != null){
Debug.Log(hit.collider.name);
}
}
=======================
붙여 넣기 할때 감지해야할 레이어를 boongObject로 했기때문에 레이어 이름만 변경해주자.
Mouse 오브젝트에서 VecPo 사이즈를 4로 정해주자.
플레이 버튼을 눌렀을때 다음과 같이 오브젝트 이름을 가져오면 성공이다.
여기까지 가장 기본적인 내용 매칭해주었다.
다음 장에서는 감지된 이름별로 이름을 매칭해보자.
붕어빵 게임 06] 스크립팅_ 붕어빵 굽기 (0) | 2020.05.06 |
---|---|
붕어빵 게임 05] 스크립팅_ 오브젝트 transform 변경 함수 (0) | 2020.05.05 |
붕어빵 게임 04] 스크립팅_ 마우스로 클릭한 오브젝트 따라다니기 (0) | 2020.05.05 |
붕어빵 게임 02] 게임오브젝트 스프라이트 만들기 (0) | 2020.05.05 |
붕어빵 게임 01] 붕어빵 만들기 게임 개요 (0) | 2020.05.04 |