게임 개발일지 - 유니티 오브젝트 활성화 / 비활성화 , 오브젝트 클릭시 UI 생성
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); 로 바꿔준다.