유니티 Input system 특정 입력 무시하는 방법
·
Unity/2D
유니티에서 Input system을 사용하다보면, 특정 입력을 받고 싶지 않을 때가 있다. 예를 들면 옵션 창이 활성화 중이라면 게임은 일시정지가 되어야하기 때문에 플레이어의 이동, 상호작용 등의 모든 키 입력은 무시해야한다. 이럴 때 actions["이벤트 명"].Disable을 사용하면 특정 키 입력을 무시할 수 있어 위와 같은 문제를 해결 할 수 있다. 위 처럼 InputSystem에 등록된 Action 이벤트들은 세팅해놓은 입력장치의 입력에 따라 호출되는데 이를 ations.Disable()을 통해 Input 값을 받지 않게 할 수 있다.  _playerInput.actions은 딕셔너리 형태이기 때문에 [] 안에 key값으로 해당 이벤트 이름을 넣어 Disable(), Enable()을 통해 입..
유니티 2D 콜라이더 합치기
·
Unity/2D
문제 발생 타일맵으로 바닥 타일을 제작하던 도중,Tilemap Colider를 사용하니 쓸데없이 많은 콜라이더가 생성되었다.콜라이더가 많을경우 물리업데이트 필요한 모양수가 많아짐으로, 계산량이 늘어나서 성능 저하가 생길 수 있다. 따라서 방법을 찾던도중 Composite Colider2D를 알게 되어 적용하여 문제를 해결하였다. 해결 방법 사용하고있는 Tilemap Colider 2D 컴포넌트의 Used By Composite 설정을 체크해줘야한다.큰 차이는 없지만 Max Tile Change Count도 1000개까지는 필요없을 것 같아서 100개로 줄여주었다.  이후 Tilemap2D Colider의 부모 오브젝트에 Composite Colider 2D 컴포넌트를 추가해주면자동으로 Rigidbody ..
유니티 2D RuleTile 규칙 유의사항
·
Unity/2D
문제 발생룰타일로 규칙을 설정하고, 언덕을 만들던 도중,언덕 사이에 있는 블럭이 계속 엉뚱한걸로 배치되었다.   해결 방안 유니티에서 규칙이 애매할경우, Default Sprite로 자동으로 배치해주는 것 같다.따라서 위 사진처럼 Default Sprite를 원하는 타일로 변경하여 해결하였다. 참고자료: 유니티 Docshttps://docs.unity3d.com/Packages/com.unity.2d.tilemap.extras@1.6/manual/RuleTile.html
파괴하는 도중에 오브젝트 생성 오류
·
Unity/2D
문제원인싱글톤패턴을 사용하기위해 싱글톤 제네릭 클래스를 상속받은 형태로 코드를 구성할경우,해당 클래스의 instance가 존재하지않으면 오브젝트를 새로 생성하게된다.   위 처럼 파괴되는 시점에 singleton 클래스를 상속받은 클래스의 instance를 참조하게되면,파괴되는 도중에 해당 클래스가 다시 생성되는 경우가 발생하게된다. 즉, 게임이 종료되어 오브젝트들이 정리되는 와중에 파괴했던 오브젝트가 다시 참조되어 생성된다는 의미이다. 해결방안 _applicationIsQuitting 이라는 flag를 만들어, 지금 게임이 종료되고 있는 시점인지 감지하여,게임이 종료중이라면, instance를 참조하더라도 해당 오브젝트를 생성하지 않도록 return하는 코드를 추가해주면 된다.
오브젝트가 파괴되었는데 참조하려고한다.. 오류
·
Unity/2D
문제원인게임이 오버되고 재시작하여 플레이어 오브젝트를 파괴하고 재생성을 했다.이후 장애물과 부딪혔더니 플레이어의 스크립트에 충돌과 관련된 기능을 담당하는 코루틴 부분에서 오류가 발생했다.  오브젝트가 파괴되면 원래 실행중인 코루틴은 자동으로 종료가 된다.또한 PlayerHitCorutine은 실행될때마다 새롭게 할당을 하기 때문에 이해가 가지않았다.오브젝트가 파괴되었어도 새롭게 생성후 다시 코루틴 변수 할당을 해주는데 해당 오류가 뜬 원인이 무엇일까.  해결방안해당 문제의 원인을 마이크로소프트의 프로그래밍 가이드에서 알수 있었다.https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-un..
Unity Photon Pun2 연결하는 방법
·
Unity/2D
1. 포톤 연결하는 방법 https://www.photonengine.com/ 1. 포톤 홈페이지에서 로그인 후 새 애플리케이션을 생성을 누른 뒤 Photon 종류를 Pun으로 설정합니다. 2. 이렇게해서 생성된 애플리케이션의 App ID를 복사 합니다. 3. 에셋스토어에서 PUN 2 - FREE를 다운로드 한뒤에 프로젝트에 Import를 합니다. 4. Import를 완료하면 해당 위자드가 뜨는데 이 위자드에 아까 저장해둔 App ID를 붙여넣기하면 연결이 완료됩니다.