UI를 게임오브젝트, 프리팹으로 만들어서 설정한 경우,

참조할 경우 보통 프로젝트 뷰에서 참조를 했었는데, 하이라키뷰에 있는 프리팹을 참조해야 된다.

 


public Gameobject Panel;

여기서 판넬이 ui 이름이다. 

이렇게 설정을 했다면, 프로젝트 뷰에 생성된 프리팹 panel이 아닌, 하이라키뷰에 있는 판넬을 적용해야

게임 실행에서 오브젝트 클릭시 ui가 생성되더라.

 



오브젝트 클릭시 ui 생성


-> start 함수에서 먼저



// 유아이 기능 비활성화

 <gameobject>.SetActive(false);

유아이 기능 비활성화에 대한 정보는


http://hyunity3d.tistory.com/381

에서 참조했다.



요약하자면,

오브젝트를 안보이게 하는 방법이 2가지가 있는데,

1.  gameobject.Setactive(false);

오브젝트를 비활성화시킨다.


: 인스펙터에서 체크박스를 해제한 효과로, 오브젝트 자체를 비활성화 시킨다. 오브젝트를 일시적으로 화면에서 사라지게 하는 것이다.


2. gameobject.renderer.enabled = false;

오브젝트의 화면 표시를 금지한다.

 랜더러를 enabled한다는 뜻으로, 오브젝트의 랜더러를 끄는 것을 의미한다. 



-> Update 함수에서


카메라에 마우스가 댄 곳에 레이를 설정하고,


Ray 변수를 생성하고,

ScreenPointToRay(Input.mousePosition); 으로 마우스 댄 곳에 레이를 설정한다.





if문으로 클릭시 오브젝트와 충돌하여 ui 생성 스크립트를 생성한다.


//왼쪽 버튼을 눌렀을 때,

 if (Input.GetMouseButton(0)


레이캐스트가 특정오브젝트와 충돌할때 UI 생성

// 특정 오브젝트에 태크를 붙여서, collider.tag == "" 로 해결했다.


그리고 이때  <gameobject>.SetActive(true); 로 바꿔준다.













 

+ Recent posts