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); 로 바꿔준다.
'유희 게임 개발 일지 > Programing Diary' 카테고리의 다른 글
다른 스크립트의 변수 호출(다른 스크립트의 변수 가져오기) (0) | 2017.11.10 |
---|---|
유니티 ) 텍스쳐를 스프라이트로 바꾸기(TEXTURES-> SPRITE, (material)shader->sprite) (0) | 2017.11.08 |
Unity) 유니티에서 배경 뒤로 빼기, 오브젝트가 배경에 묻혀서 안보일 때! (4) | 2017.11.08 |
[Unity] 에셋 뜯어보기) Corgi Engine : Game manager (1) (0) | 2017.10.27 |
유니티 다이얼로그 시스템 에셋 공부 일지 (0) | 2017.10.26 |