본문 바로가기
IT Tip/유니티 강좌

[유니티 강좌] 오브젝트 취득하기(선택하기)

by 연꽃연못 2020. 11. 21.
반응형

마우스로 클릭해서 오브젝트 정보를 취득하는 방법이에요. 마우스 클릭만 줄 경우에는 화면에 뭐든 마우스가 클릭되기만 하면 실행하니 맞춤이 될수가 없어요. ^^ 클릭한 그 오브젝트의 정보를 콘솔창에 띄워줄거에요. 유니티의 Ray를 이용한 기능이에요. 

 

마우스를 클릭하면 오브젝트의 정보를 받아서 콘솔창의 띄워주기

 

 

먼저 오브젝트를 생성해 주세요. 

전 Cube, Sphere, Capsule를 추가해 줬어요. 

Cube를 3개 만들어서 Cube1, Cube2 ... 이런식으로 이름만 바꿔줘도 되요. 

예제라 확실히 구분될수 있게 다른 모양으로 추가해준것 뿐이에요. ^^

 

 

간단한 기능만을 위한 예제라 ^^ 다른 군더더기가 없어요. ㅋ

바로 스크립트 작성에 들어갈께요. 

적당한 폴더(Scripts)에 [GetObject]스크립트를 추가해 줬어요. 더블클릭해서 스크립트 작성하심되요. 

 

 

아래 스크립트를 참고로 해주세요. 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetObject : MonoBehaviour
{
    // 카메라를 지정
    public Camera getCamera;

    // 레이케스트가 건드린(?) 것을 취득해서 넣어두는곳
    private RaycastHit hit;

    void Update()
    {
        // 마우스 클릭을 하면~
        if(Input.GetMouseButtonDown(0))
        {
            // 마우스 포지션을 취득해서 대입해
            Ray ray = getCamera.ScreenPointToRay(Input.mousePosition);

            // 마우스 포지션에서 레이를 던져서 뭔가가 걸리면 hit에 넣음
            if(Physics.Raycast(ray, out hit))
            {
                // 오브젝트명을 취득해서 변수에 넣음
                string objectName = hit.collider.gameObject.name;
                // 오브젝트명을 콘솔에 표시해줌
                Debug.Log(objectName);
            }
        }
    }
}

 

메인 카메라를 바로 해도 되지만 작업을 하다보면 카메라가 여러대가 될때가 많아요. ^^ 

그럴땐 저렇게 카메라를 따로 지정해 주는게 전 편리했어요. 

 

나중에 편집으로 돌아가서는 지정할 카메라를 끌어다 붙여주면 되요.

 

    public Camera getCamera;

 

나머지 코드는 주석을 달아놨어요. ㅎㅎ

조금이라도 편한길을 가고자고... 용쓰는거 같지만.. ㅋㅋ 사실 머 좋은게 좋은거니까.. ㅋ

 

스크립트 작성이 끝나면 빈오브젝트(Create Empty)로 GameObject를 추가해줍니다.

이름은 GetObject로 해줬어요. 

 

 

GetObject에 미리 작성해 놓은 스크립트(GetObject.cs)를 끌어서 추가해주고 

Get Camera에 [Main Camera]를 끌어다 놔주세요. 

아래 이미지를 보심 바로 이해가 될거에요. ^^ 말이 어렵네요. ㅎ

 

 

이제 할일은 끝났고 ^^ 실행시켜서 콘솔창을 확인해 보시면 되요. 

지금이야 오브젝트를 선택하는걸 볼려고 콘솔창에 띄워줬지만 여러가지 명령으로 멋진 작품을 만들어 낼수 있어요. 

 

 

동영상으로도 준비해봤어요. ^^ (많은 시청 부탁드려요. )

 

반응형

댓글