Unity

개발/Unity

Unity - InputField 입력 이벤트 구현하기

Unity InputField에서 입력 이벤트를 구현하는 이벤트 핸들링 메소드는 두 가지 종류가 있다. onEndEdit / onSubmit 두 방법에는 아래와 같은 차이점이 있으니, 원하는 방식으로 이벤트 메소드를 구현하면된다. 1. onEndEdit - 편집이 끝났을 때 호출되는 이벤트 메소드 2. onSubmit - 편집을 끝내고 직접 입력 버튼(Keyboard Enter)을 눌렀을 때 호출되는 이벤트 메소드 onEndEdit을 사용할 경우, 모바일 환경에서 키패드 입력 창이 닫히면 호출이 되는 현상이 있으므로 증분검사를 하는 케이스가 아니면, onSubmit을 사용하는것이 바람직해보인다. Sample Code using UnityEngine; using System.Collections; usin..

개발/Unity

폴더 순회하며 깔끔하게 삭제하기

유니티에서 로컬 폴더에 접근해 폴더 안의 파일까지 모두 지우고 싶을 때, 오류가 발생하며 정상 작동하지 않는 경우가 있다. 이럴 때는 디렉토리의 모든 파일을 먼저 지운 후 폴더를 지우는 코드를 실행하면 정상적으로 삭제를 진행할 수 있다. 아래 코드에 path 변수에 원하는 디렉토리 경로를 지정할 경우 정상 삭제되는 모습을 확인할 수 있다. string path = "path" foreach (string directory in Directory.GetDirectories(path)) { try { Directory.Delete(directory, true); } catch (IOException) { Directory.Delete(directory, true); } catch (UnauthorizedAc..

개발/Unity

Mouse Cursor 바꾸기

public class MouseController : MonoBehaviour { public Texture2D cursorTextureA; public Texture2D cursorTextureB; public CursorMode cursorMode = CursorMode.Auto; public Vector2 hotSpot = Vector2.zero; void Start() { } public void ChangeMouseAMode(){ Cursor.SetCursor(cursorTextureA, hotSpot, cursorMode); } public void ChangeMouseBMode(){ Cursor.SetCursor(cursorTextureB, hotSpot, cursorMode); } } -..

개발/Unity

Unity Button UI가 의지대로 활성화 되지 않는 경우

Unity Button UI에는 Navigation이라는 Option이 존재[None, Everything, Horizontal, Vertical, Automatic, Explicit] 이벤트에 따른 다른 Button UI의 활성화를 도와주는 기능 - Horizontal : ←, → 방향키에 반응 - Vertical : ↑, ↓ 방향키에 반응 - Automatic : 주변의 UI에 자동으로 반응 - Explicit : 키보드 방향별로, 버튼별로 매핑 가능 Automatic으로 설정할 경우 원하지않는 활성화가 일어날 수 있음 3D 프로그램에 2D UI를 고정적으로 사용하는 경우에는 꼭 침착하게 모든 Button UI에 Navigation을 None으로 바꿔주는 것이 좋을 듯 함

개발/Unity

Unity Visual Studio Code Asset Namespace 못찾는 오류 해결 방법

Unity와 VSCode를 연결해서 사용하다보면 간간히 Asset Store에서 Import한 Asset의 Namespace를 못찾는 오류가 발생한다. 이때 아래와 같이 추가세팅을 진행하면, Import한 Asset의 Namespace를 잘 찾을 수 있게 된다. 1. Unity VSCode 디버깅 설정 - 에셋 스토어에서 VSCode Asset을 Import한다. 2. Unity Preference 설정 - VSCode 에셋을 Import하면 Edit-Preferences에 VSCode 항목이 추가되며, 아래와 같은 옵션을 활성화한다. * Enable Integration * Use Unity Debugger * Enable Auto Open * Revert Script Editor on Unity * ..

개발/Unity

Unity 모바일 TMP_InputField 패스워드 미작동 해결방법

# Unity에서 모바일(Android, iOS)로 개발을 진행하다보면, TMP_InputField에서 패스워드로 설정 시 미작동하는 오류가 간간히 발생함 # 해결방법은 간단함 1. 프로젝트 폴더의 TMP_InputField.cs를 연다 2. ActivateInputFieldInternal() 함수를 찾는다. 3. 아래 코드를 찾는다 if (shouldHideSoftKeyboard == false && m_ReadOnly == false && contentType != ContentType.Custom) 4. 아래 코드로 바꾼다 if (shouldHideSoftKeyboard == false && m_ReadOnly == false) 5. 테스트 해보면 모바일에서 키보드가 잘 올라오는것을 확인할 수 있다

개발/Unity

Unity GameObject의 모든 하위 Transform에 접근하기

계층적 구조를 가지는 modeling 파일이 존재할 경우에, 모든 하위 Transform에 접근해야하는 경우가 있다. GameObject a ㄴ b ㄴ c ㄴ d 그럴 때는 해당 코드를 사용하면 모든 하위 Transform에 손쉽게 접근할 수 있다. public void findAllChildren(GameObject g) { Transform[] allChildren = g.GetComponentsInChildren(); foreach(Transform child in allChildren) { //수행할 함수 작성 //Ex. AddComponent child.gameObject.AddComponent(); } }

njsung
'Unity' 태그의 글 목록