전체 글 51

내일배움캠프: GetInstanceID

오늘은 Unity에서 PoolManager를 만드는 중 키 값을 enum이나 string 대신 사용할 더 좋은 방법이 없을까 고민하다가 GetInstanceID라는 메서드를 발견했다.이 메서드는 Prefab의 고유한 Instance ID를 반환해주며, 이를 활용하면 Dictionary의 키 값을 string 대신 int로 설정할 수 있어서 문자열 비교를 배제할 수 있게 됐다.enum이나 string이 불편했던 이유기존에 enum을 사용하면 새로운 풀을 추가할 때마다 enum 값을 추가해야 하는 번거로움이 있었다.string을 사용하는 경우에도 문자열 비교로 인해 성능 저하가 생길 수 있고, 오타로 인한 에러가 발생할 가능성도 있었다. GetInstanceID 사용GetInstanceID를 사용하면 이러한..

내일배움캠프 2024.12.09

내일배움캠프: Cinemachine Follow 기능 사용 중 캐릭터 떨림

유니티 시네머신유니티 시네머신의 Follow 기능을 사용해 플레이어 캐릭터를 추적하던 중, 캐릭터가 떨리는 현상이 생겼다.이전에 시네머신을 사용했을 때는 캐릭터가 떨리는 현상 없이 잘 움직였었는데, 이번에는 캐릭터가 덜덜덜덜 떨리기 시작했다. 원인원인이 뭔지 분석해보는 과정에서, 전에 사용했을 때는 FixedUpdate에서 이동을 처리하지 않았다는 사실이 떠올랐다. 즉, Rigidbody를 이용한 이동에서 문제가 생겼다는 것이다. 이는 물리 연산을 처리하는 타이밍과 시네머신 브레인(Cinemachine Brain)에서 정보를 업데이트하는 타이밍 차이에서 오는 문제임이 분명했다. 더 정확한 원인을 찾고자 정보를 찾아 보던 중 Unity Korea에서 제공하는 좋은 자료 영상을 발견했다. 더보기https:/..

내일배움캠프 2024.12.06

내일배움캠프: 타일맵 이미지 동적으로 변경하기

유니티 공식 문서 오늘은 타일 이미지를 동적으로 변환하기 위해 타일 맵에 대해서 공부해봤다. 1. 활성화 돼 있는 타일맵 좌표 가져오기 private List GetTilesPosList(Tilemap tileMap) { var bounds = tileMap.cellBounds; var tilesPosList = new List(); for (var x = bounds.xMin; x  cellBounds Tilemap이 포함하는 셀들의 경계(최소 및 최대 x, y 값)를 가져 온다.타일 존재 여부 확인:tileMap.HasTile(cellPos)를 사용하여 해당 셀에 타일이 존재하는지 확인합니다.  2. 스크립트에서 타일의 이미지를 변경 하기 [Ser..

내일배움캠프 2024.12.05