본문 바로가기

유니티/팁, 정보 노트18

[Unity]씬 버튼 하나로 준비하기 새 씬을 만들때마다 기본으로 따라오는 오브젝트들이 있었다. 타일맵, ui 캔버스, 글로벌 라이트, 시네마틱 카메라 등등.. 프리팹으로 만들어서 가져다 쓰면 되긴하지만 그마저도 많아지다 보니 세팅해야할 작업이 많아 여간 귀찮은게 아니었다. 에디터에 버튼하나 만들어서 코드에 필요한 것들을 다 세팅해서 씬 준비를 해보았다.(노가다가 좀 필요하지만 하고 나면 편하다.) 미리 입력한 width height 값으로 타일맵도 자동으로 세팅하게 해주었다. 기본으로 타일맵 밖으로 안나가게 사이즈 가장 바깥쪽은 block 타일로 자동으로 세팅되게 한 사진이다. 2019. 10. 20.
[Unity]에디터 상태에서의 프리팹 Instantiate 보통 Instantiate(gameobject) 이런식으로 하는데 이번에 작업하면서 에디터 상태에서 인스턴스화 할 일이 있었다. 그 때는 위에 방식이 PrefabUtility.InstantiatePrerfab 함수를 통해 인스턴스화 해야한다. GameObject canvasPrefab = Resources.Load("Prefabs/UI/UICanvas") as GameObject; PrefabUtility.InstantiatePrefab(canvasPrefab); 2019. 10. 20.
[C#] as vs classic casting With the "classic" method, if the cast fails, an exception is thrown. With the as method, it results in null, which can be checked for, and avoid an exception being thrown. Also, you can only use "as" with reference types, so if you are typecasting to a value type, you must still use the "classic" method. Note: The as method can only be used for types that can be assigned a null value. That use .. 2019. 10. 18.
[Unity]EventSystem을 이용해 아이템UI 드래그 및 다른 슬롯에 등록하기(IDragHandler, IDropHandler) 여러 방법이 있지만 이게 가장 간단한 방법 같아서 정리한다. 아이템 사용 이런거는 없고 단수 드래그, 드랍할 UI오브젝트에 Drag관련 인터페이스가 포함된 스크립트를 추가 예시) public class ItemDragHandler : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler 그리고 인터페이스에 해당하는 함수를 구현해주면 된다. 드래그해서 마우스를 따라다니게 하고 싶으므로 IDragHandler의 OnDrag함수를 구현해주면 된다. 예) public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; } 참고로 eventData.posit.. 2019. 9. 27.