Rebind한 키세팅 저장/초기화/되돌리기
·
코드 및 공부/입력 관리
유니티 버전 - 6000.0.40f1     목차IUISettingChanger변경된 Rebind 저장     IUISettingChanger키세팅뿐만 아니라 다른 세팅들의 변경사항을 제어하기위한 인터페이스입니다, 각 메서드는 저장/되돌리기/초기화의 역할을 담당하고, 하위의 개별 세팅에서 변경사항이 있을때 IsChanged를 이용하여, 설정 팝업을 끄거나 탭을 넘어갈때 미변경 사항을 체크하고 플레이어에게 되묻는 역할을 합니다 public interface IUISettingChanger{ public void ImplementSetting(); public void RevertSetting(); public void ResetSetting(SystemData systemData); ..
input system에서 리바인딩한 키세팅을 저장, 로드, 삭제하기
·
코드 및 공부/입력 관리
유니티 버전 - 6000.0.37f1     목차이전글저장, 로드, 삭제     이전글이전에 구현한 커스텀 컨트롤 바인딩을 이용하여 저장, 로드, 삭제하는 기능입니다더보기2025.02.25 - [코드 및 공부/입력 관리] - 커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system) 커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system)유니티 버전 - 6000.0.37f1     목차들어가며Rebinding system     들어가며키를 리바인딩할 수 있다면, 다음과 같이 사용자가 직접 원하는 키세팅을 이용하여 동작을 수행하도록 하고, 사용자의ekrxjvpvj0110.tistory.com     저장, 로드, 삭제public void SaveRe..
커스텀 컨트롤 바인딩 (InputSystem을 이용한 Rebinding system)
·
코드 및 공부/입력 관리
유니티 버전 - 6000.0.37f1     목차들어가며Rebinding system     들어가며키를 리바인딩할 수 있다면, 다음과 같이 사용자가 직접 원하는 키세팅을 이용하여 동작을 수행하도록 하고, 사용자의 편의성과 접근성을 향상 시킬 수 있습니다     Rebinding system전체 코드입니다public class UIRebindAction : MonoBehaviour{ [SerializeField] private InputActionReference actionReference = null; [SerializeField] private int bindingIndex; private InputActionRebindingExtensions.RebindingOperation _r..
화면 해상도 및 전체화면 여부 조절하기, Screen.SetResolution()
·
코드 및 공부/입력 관리
유니티 버전 - 6000.0.34f1     목차화면 해상도 및 전체 화면 여부 조절하기     화면 해상도 조절하기인게임 옵션을 설정할때 그래픽 세팅뿐만 아니라 화면 해상도 또한 바꿀 수 있어야 할 것입니다, 16:9 비율의 해상도만을 필터링하여 게임의 해상도를 바꾸어주는 코드입니다   드롭다운과 토글을 만들어 주고, 드롭다운의 모든 옵션을 지워줍니다   코드를 작성하여줍니다, 아래는 전체 코드입니다더보기using UnityEngine;using System.Collections.Generic;using UnityEngine.UI;using TMPro;public class TitleOption : PopupUI{ public TMP_Dropdown resolutionsDropdown; pu..
방향키로 버튼간 이동(탐색) 하기, UI Navigation
·
코드 및 공부/입력 관리
유니티 버전 - 6000.0.34f1     목차필요한 설정코드 및 적용     필요한 설정1. InputSystem -> Action Maps -> UI - Actions - Navigate에서 각 방향을 키보드 방향키와 맞게 설정합니다, 만약 DefaultInputActions를 사용하신다면 생략해도 무방합니다   2. Evnet System과 Input System UI Input Module이 Hierarchy에 존재해야하고 Actions Asset이 알맞게 설정되어있어야합니다     코드 및 적용 이동시키고자 하는 버튼들의 Navigation을 Explicit으로 변경합니다   Select On XXX에는 해당하는 방향키를 입력했을때 포커스가 옮겨져야하는 오브젝트를 지정하여줍니다, 현재 Butt..
유니티 유용한 단축키 3가지
·
코드 및 공부/입력 관리
유니티 버전 - 2022.3.17f1     유용한 단축키 3가지Shitft + Space해당 윈도우를 최대화 합니다, 게임 뷰를 클릭하고 수행시 게임뷰가, 씬뷰를 클릭하고 수행시 씬뷰가 전체화면으로 최대화 됩니다   Alt + Shift + AHierarchy에서 선택된 오브젝트를 활성화/비활성화 합니다   Ctrl + Shift + N빈 오브젝트를 생성합니다, 추가로 Alt + Shift + N은 자식 오브젝트로 빈 오브젝트를 추가하지만 불편해서 해당 키로는 잘 사용하지 않습니다   추가로 Edit -> Shortcuts 에서 동작 수행을 원하는 단축키로 설정이 가능합니다
Dotween의 OnComplete()를 여러개 사용할때 작동하지 않는 문제
·
코드 및 공부/입력 관리
유니티 버전 - 2022.3.17f1     .OnComplete() 연속 사용시 작동하지않는 문제메서드 체이닝으로 .OnComplete()를 두개 이상 사용할때 소위말하는 "씹히는" 현상이 일어나는 이유는, 여러 개의 콜백을 사용할 수 있지만, 연달아 사용한 .OnComplete()는 이전 것을 무시하고, 가장 마지막에 설정된 .OnComplete()만 실행됩니다transform.DOMoveX(0, 2f) .OnComplete(() => Debug.Log("첫 번째")) // 실행 X .OnComplete(() => Debug.Log("두 번째"));   따라서 하나의 OnComplete 내부에서 모든 동작을 처리하거나, 메서드를 따로 만들거나, Sequence를 이용하여 처리해야합니다var..
IsPointerOverGameObject()란?
·
코드 및 공부/입력 관리
유니티 버전 - 2022.3.17f1     목차IsPointerOverGameObject()사용 예시주의할 점     IsPointerOverGameObject()마우스 입력을 받았을때 게임 오브젝트or씬 위에서 클릭이 일어났는지 UI위에서 클릭이 일어났는지 반환해주는 메서드입니다, 이를 이용하여 마우스 클릭으로 특정동작을 수행해야할 때 UI를 클릭했다면 동작을 수행하지 못하도록 할 수 있습니다     사용 예시 if (p_context.phase == InputActionPhase.Performed) { if (InGame.isUIOpened) return; if (EventSystem.current.IsPointerOverGameObject()) ..
Input System을 이용한 움직임 구현
·
코드 및 공부/입력 관리
유니티 버전 - 2022.3.17f1     목차Input System 적용하기Input System 생성 및 설정에셋 만들기Action Type과 Value완성된 코드 및 실행 결과완성코드실행결과마치며참고하면 좋은 자료     Input System 적용하기1. Window의 Pakage Manager를 선택합니다2. 들어가게되면 Packages: In Project로 설정되어있을텐데 클릭하여 Unity Registry로 변경합니다3. 우측의 검색에 input을 검색하거나 직접 찾아서 Install 버튼을 눌러줍니다, 유니티 버전별로 Input System의 버전또한 상이합니다   설치 후 Yes를 눌러 에디터를 재시작합니다     Input System 생성 및 설정   에셋 만들기Input Acti..