ETC/Unity

· ETC/Unity
유니티에서 The requested operation caused a stack overflow 오류가 발생했다. 타이틀에서 메인 게임 씬으로 넘어갈 때 발생했는데, 타이틀 씬에 들어가는건 게임매니저 외엔 수정한게 없는데 똑같은게 들어간 메인 씬은 또 잘 된다..; 그래도 알 수 없으니 콘솔에 뜬 호출스택을 하나하나 찾아가며 본 결과 setter에서 다른 값을 변경해줄 때 발생한 오류였는데 public int playerStamina { get { return _playerStamina; } set { _playerStamina = value; if(_playerStamina 스태미너 0으로 설정->시간대 변경 호출->스태미너 0으로 설정... 무한 반복이 일어나 호출스택이 터져버린 것. 데이터를 새로 ..
· ETC/Unity
개발 진행중인 프로젝트는 2D게임인데, 쿼터뷰 형식으로 되어있다. 3D공간에 물체를 배치하고 Orthographic View로 보여주는게 아니라 각각의 장소가 모두 1장의 Sprite이다. 그렇기 때문에 공간 내에 물체를 랜덤하게 배치할 때 계산을 자칫 잘못하면 맵 밖으로 튀어나가거나 공중에 붕 떠있는 것처럼 보이게 된다. 위와 같은 상황을 방지하기 위해 바닥면을 기준으로 오브젝트를 배치해 주어야 하는데, 바닥면의 좌표를 구하는 방법은 축과 평행하지 않은 평면상의 좌표를 구하는 것과 같다. 먼저 바닥 위에 배치할 오브젝트 Sprite의 Pivot포인트를 Bottom으로 설정해 준다. 그 다음 위 그림과 같이 바닥면의 네 꼭짓점에 적당한 Padding을 준 위치에 네 개의 Empty Object를 생성한다..
· ETC/Unity
C# 스크립트로 스토리 진행 로직 작업을 하다가 문득 그런 생각이 들었다. Xml이나 Json에 프리팹이나 리소스와 스토리 내용을 등록해 직렬화 하고, 거기에 필요한 데이터만 런타임중에 불러와서 표시해주면 간단하지 않을까? 바로 해보자. Editor 폴더에 스크립트를 작성한다. Story Scene Editor는 스토리 내용과 리소스를 등록해줄 에디터 Story Scene List는 위 에디터에서 직렬화 후 저장한 데이터들을 한번에 볼 수 있는 창이다. [SerializeField] public Dictionary storySceneList; private SerializedObject storySceneObject; private SerializedProperty storySceneListPropert..
· ETC/Unity
SaveData가 있으면 버튼에 이벤트를 동적으로 할당하게 처리해줬다. 근데 자꾸 0~4의 범위를 벗어나 5번에다 저장한다...ㅜㅜ 검색해보니 for loop 안에서 람다함수 사용 시 발생하는 Closure 문제라고 한다... for loop 내부에서 i값을 그때그때 값 복사, 참조하면 해결 Reference: https://velog.io/@jh11240/Unity%EB%B0%98%EB%B3%B5%EB%AC%B8%EC%97%90%EC%84%9C-%EB%9E%8C%EB%8B%A4delegate%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%EC%8B%9C-%EB%AC%B8%EC%A0%9C%EC%A0%90%ED%81%B4%EB%A1%9C%EC%A0%80-%EB%AC%B8%EC%A0%9C
Jade Choe
'ETC/Unity' 카테고리의 글 목록