본문 바로가기
반응형

유니티 공부/Unity99

Unity - Constructor Chaining(생성자 체이닝) Constructor Chaining 여러 생성자 중에서 가장 많은 입력을 필요로 하는 생성자를 기준으로 하여, 입력할 값의 수가 적은 다른 생성자들을 이 기준이 되는 생성자를 통해 간접적으로 호출하는 기법이다. 이를 통해 코드의 중복을 최소화하고 재사용성을 높일 수 있다. 1. 클래스 내의 생성자들을 연쇄적으로 호출하는 경우 : this() 키워드 사용 01 생성자 체이닝을 사용하지 않는 경우 두번째 생성자와 세번째 생성자에서 this.name = name 코드가 중복되는 것을 확인할 수 있다. class Piggy { string name = ""; int weight = 0: public Piggy() { } public Piggy(string name) { this.name = name; } pu.. 2023. 12. 3.
Unity - 버튼이 클릭이 안되는 경우(EventSystem, UI 겹침, Panel겹침) 01 EventSystem이 있는지 확인하자 EventSystem이 없다면 UI 이벤트를 인식하지 못하므로 버튼이 작동하지 않는다. 02 다른 UI와 겹쳐져 있는지 확인하자 만약 다른 UI와 겹쳐져있는 경우 겹치지않게 수정하거나 레이어를 이용해서 순서를 조정하자 03 다른 Panel안에 들어가있는지 확인하자 만약 부모 패널안에 자식패널안에 있는 버튼일 경우 부모 패널이 자식 패널의 이벤트를 가져갈 수 있다. 그러므로 패널을 분리하거나 분리하기 싫다면 Sorting Order를 통해 순서를 정하거나 부모의 패널의 RayCast를 해제하면서 이벤트를 무시시킬 수 있다. 2023. 11. 23.
Unity - 2차원 배열을 inspector창에서 입력하는 방법 1. 행에 해당하는 배열 만들기 using System.Collections; using System.Collections.Generic; using UnityEngine; [System.Serializable] public class RowArray { public GameObject[] row; //행에 들어갈 배열들 } 2. 열에 해당하는 배열 만들기 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Example : Monobehaviour { public RowArray[] columnArray; // 열에 해당하는 배열 } 결과 2023. 11. 10.
Unity - visual studio 호환되지 않음 오류 해결 방법 해결 방법 01 Windows - Preferences - External Tools에서 비주얼 스튜디오가 잘 연결되었는지 확인 02 위의 방법으로도 해결이 되지 않을 경우 현재 프로젝트 파일로 들어간 다음 .vs폴더와 .csproj 및 .sln 파일들을 다 지우고 다시 프로젝트를 열면 실행되는 것을 확인할 수 있다. (!중요! 지우기 전에 꼭 프로젝트 및 비주얼스튜디오를 닫자) 2023. 11. 10.
Unity - TextMeshPro 글씨체 추가하기, 한글 깨짐 1. TextMeshPro 글씨체 추가하기 01 Windows-> TextMeshPro -> FontAssetCreator 02 ttf파일을 넣고 Generate Font 클릭하고 밑에 Save을 눌러서 저장한다. 03 만들어진 Font확인 지정된 경로에가서 폰트가 만들어졌는지 확인 한글이 깨지는 경우 01 Generation Settings에서 Atlas Poplulation을 Dynamic으로 변경한다. 02 Sample Point Size을 조정해서 한글 깨짐을 고치면 된다. 주로 낮은 숫자로 하면 고쳐졌다. 2023. 11. 6.
Unity - GraphicRaycaster(2D), Physics.Raycast(3D) Physics.Raycast 일반적으로 3D 레이캐스팅을 수행한다. Ray를 통해 충돌하는 오브젝트를 찾는다. public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers); origin에서 시작하여 direction으로 maxdistance만큼 ray를 쏜다. 이 ray는 현재 Scene에 있는 모든 Collider를 감지하기 위해 사용된다. 또한 선택적으로 LayerMask를 통해 특 정레이어에 속한 Collider만 충돌 검출을 할 수 있다. 간단한 예제 코드 public class PhysicsRaycastExample.. 2023. 10. 31.
반응형