Query란? 소프트웨어 개발에서 "쿼리"라는 용어는 데이터베이스 또는 기타 데이터 소스의 정보 또는 데이터에 대한 요청을 의미합니다. 쿼리는 일반적으로 데이터가 저장되고 관리되는 다양한 유형의 애플리케이션 및 시스템에서 사용됩니다. 관계형 데이터베이스를 관리하기 위한 표준 언어인 SQL(Structured Query Language)과 같은 쿼리 언어로 작성됩니다. 예시 다음은 데이터베이스 관리에서 사용되는 일반적인 쿼리 언어인 SQL을 사용한 쿼리의 예입니다. 이름, 나이, 급여를 포함하여 회사 직원에 대한 정보를 저장하는 "Employees"라는 데이터베이스 테이블이 있다고 가정해 보겠습니다. 급여가 $50,000 이상인 모든 직원의 이름과 나이를 검색하려고 합니다. sql Copy code SEL..
Action이란? Action은 매개 변수와 반환 값이 없는 메서드를 나타내는 대리자 유형입니다. 주로 런타임(게임이 실행되는 동안)에 구독하고 발동시킬 수 있는 이벤트를 만드는 데 사용됩니다. 다음은 예시입니다. public class Button : MonoBehaviour { public Action onClick; private void OnMouseDown() { if (onClick != null) { onClick.Invoke(); } } } public class GameController : MonoBehaviour { private void Start() { // Get reference to MyButton component Button Button = FindObjectOfType(..
OnValidate란? 'OnValidate'는 Inspector 창에서 스크립트의 속성(프로퍼티 값)이 수정될 때마다 호출되는 함수입니다! 개발자가 인스펙터에서 속성을 수정하면 'OnValidate' 메서드를 자동으로 호출합니다. 이는 'OnValidate'를 사용하여 다른 속성을 업데이트하거나 속성이 수정될 때마다 유효성 검사를 수행할 수 있음을 의미합니다. 예를 들어 health와 maxHealth라는 두 가지 속성이 있는 스크립트가 있다고 가정해 보겠습니다!! health가 maxHealth보다 크지 않도록 해야 합니다. 다음과 같이 OnValidate를 사용하여 개발자가 health을 잘못 수정해도 maxHealth보다 커질 수 없게 적용할 수 있습니다. using UnityEngine; pub..
"Resources" 폴더란? "Resources" 폴더는 Resources.Load 기능을 사용하여 런타임에 자산을 로드할 수 있는 특수 폴더입니다!! Resources.Load 함수를 사용하여 런타임에 로드하려는 모든 자산은 "Resources" 폴더에 배치해야 합니다.(아래참고) Resources폴더 내에 리소스들은 게임 빌드에 포함되어 있기 때문에 런타임 중에 언로드할 수 없으며 "Resources" 폴더에 큰 자산이 너무 많으면 게임 성능에 영향을 줄 수 있습니다!! DeadCamera = Resources.Load("HideAndSeek/DeadPlayer"); soundClips = Resources.LoadAll(folderName); 예시코드입니다!
InvokeRepeating란? InvokeRepeating 함수는 MonoBehaviour 클래스의 메서드로, 지정된 시간 간격으로 반복해서 메서드를 호출합니다. 일반적으로 주기적으로 실행되는 로직을 구현할 때 사용됩니다. InvokeRepeating은 총 3개의 매개변수를 받습니다! methodName: 호출할 메서드 이름 (string) time: 첫 번째 호출 이전의 대기 시간 (float) repeatRate: 반복 간격 (float) InvokeRepeating("UpdatePosition", 1f, 0.5f)는 "UpdatePosition" 메서드를 1초 후에 처음 호출하고, 그 후 0.5초마다 메서드를 호출합니다. 주의 해당 객체가 활성화되어 있어야 작동하며, 해당 객체가 비활성화되면 즉시..
유니티에서 unitask를 사용하기 앞서, 유니티에서 사용하는 코루틴이 무엇인지 알아야 진정한 unitask의 장점을 알 수 있습니다.지피지기 백전불태 그렇기에 유니티에 기본적으로 내장되어 있는 코루틴에 대해 자세히 알아본 다음, 유니티에서의 unitask 사용방법에 대해 알아보겠습니다! 코루틴이란?유니티에서 사용되는 코루틴은 비동기 프로그래밍을 수행하기 위한 기능 중 하나입니다. 코루틴은 일시 중지할 수 있는 함수의 실행을 가능하게 하며,특정 조건이 충족될 때까지 기다린 후(ex_ yield return)에 실행을 계속할 수 있도록 합니다. UniTask란?유니티에서 UniTask는 비동기 작업을 처리하기 위한 도구로, 유니티에 내장되어 있는 코루틴 기능을 대체하며 async/await 패턴을 지원합니..
기본 기본적으로, 유니티 프로파일러는 마지막 300 프레임만 저장하게 되어있습니다! 설정 상단에 있는 [Edit] - [Preferences]을 클릭해준 후 [Analysis] 탭의 Profiler를 눌러준 후 Frame Count을 300에서 원하는 만큼 늘려주면 됩니다!
Event Camera란? Event Camera는 유니티의 이벤트 시스템에 의해 사용되어 UI 요소와 상호작용하는 데 필요한 정보를 수집합니다. 예를 들어, 플레이어가 UI 버튼을 클릭할 때 이벤트 카메라가 해당 입력을 감지하고 이벤트 시스템이 이 정보를 사용하여 적절한 처리를 수행합니다. Event Camera를 할당해주지 않을 경우 생기는 문제점 World Space나 Screen Space로 설정한 Canvas의 경우에는 Camera속성을 할당해주어야 합니다! 할당하지 않았을 경우에는 Camera를 찾기 위해 연산과정을 거쳐 리소스를 낭비하기 때문입니다! 또한, Canvas 내의 UI 요소와 상호작용하는 데 문제가 발생합니다. 이벤트 카메라가 할당되지 않은 경우 다음과 같은 문제가 발생할 수 있습..
Optimize Game Objects 캐릭터 프리팹을 살펴보던 중 Optimize Game Object 토글이 있길래 실험삼아 해보았습니다. Optimize Game Objects를 체크해주니 캐릭터의 Transform이 최적화된 것을 볼 수 있었습니다. Character_OP라고 되어있는 캐릭터가 Optimize Game Objects 체크되어 있는 캐릭터이며 Character는 평범한 캐릭터입니다. 즉, 모델의 트랜스폼 계층 구조를 최적화 시켜주는 역할을 하는 듯 하였습니다. 이 두 모델을 가지고 총 4번의 실험을 하였는데요 첫 번째로는 Optimize Game Objects 되어 있는 캐릭터에 Optimize Game Objects체크 되어 있는 애니메이션 클립 두 번째로는 Optimize Gam..
이 포스팅에서 사용된 코드는 아래 블로거분의 코드를 참고하였습니다! https://mentum.tistory.com/657 unity 언제나 특정 씬에서 시작하게 만들기 #. 특정 씬에서 시작하는 게임 환경 어느 씬 에서나 테스트할 수 있어야 한다!라는 개발 방침을 따르고 있지만 서버 등이 들어간 경우에는 시작 씬부터 초기화를 순차 진행하지 않으면 오류가 발 mentum.tistory.com 코드 [InitializeOnLoad] public class EditorStartInit { static EditorStartInit() { var pathOfFirstScene = EditorBuildSettings.scenes[0].path; var sceneAsset = AssetDatabase.LoadAss..
GUID란? 유니티 GUID는 "Unity Globally Unique Identifier"의 약자로, Unity 엔진에서 사용되는 고유 식별자를 의미합니다. GUID는 전 세계적으로 고유한 128비트 길이의 숫자로, 리소스나 객체를 식별하고 추적할 때 사용됩니다. 유니티에서 GUID는 주로 다음과 같은 상황에서 사용됩니다: 에셋 식별: 프로젝트 내에서 에셋을 참조하거나 관리할 때, 유니티는 각 에셋에 대해 고유한 GUID를 생성하여 중복이나 충돌을 방지합니다. 객체 인스턴스화: 유니티에서 생성된 게임 오브젝트 인스턴스에 대한 고유 식별자로 사용되며, 프리팹의 경우 원본 프리팹에 대한 참조를 유지할 수 있게 도와줍니다. 네트워크 통신: 멀티플레이어 게임에서 각 클라이언트가 서로를 구분하고 통신할 수 있도..
SetPositionAndRotation이란?SetPositionAndRotation은 Unity에서 사용되는 Transform 클래스의 메서드 중 하나로, 게임 오브젝트의 위치와 회전을 한번에 설정할 수 있습니다. SetPositionAndRotation(Vector3 position, Quaternion rotation) 메서드는 두 개의 매개 변수를 받습니다. 첫 번째 매개 변수는 게임 오브젝트의 위치를 나타내는 Vector3 값이고, 두 번째 매개 변수는 게임 오브젝트의 회전을 나타내는 Quaternion 값입니다. 이 메서드를 호출하면 해당 게임 오브젝트의 위치와 회전이 매개 변수로 전달된 값으로 설정됩니다. 이 메서드는 보통 Transform 컴포넌트를 가진 게임 오브젝트의 위치와 회전을 변경..
사용방법 Position Constraint를 활성화 하기 위해서는 Is Active를 활성화 시켜야 합니다! Zero를 누르면 Target Object의 Position으로 초기화할 수 있습니다 상태를 초기화하고 Is Active와 IsLock을 확인하면 됩니다! 예제 Boss Room 프로젝트 Boss Room Scene에서 사용됩니다! 플레이어 아바타의 자식으로 Pickup_Socket이 존재합니다 플레이어가 항아리를 들면 항아리 안에 있는 Position Constraint컴포넌트의 Sources에 플레이어 아바타의 자식으로 있는 Pickup_Socket가 등록됩니다! 그렇게 하여, 항아리는 플레이어의 Pickup_Socket Position을 따라가게 됩니다! 멀티플레이와 관련된 내용이긴 하나 ..
using UnityEngine; [RequireComponent(typeof(Rigidbody))] public class Movement : MonoBehaviour { private Rigidbody _rigidbody; [SerializeField] private float _moveSpeed = 2f; [SerializeField] private float _jump = 2f; //rotation private float _targetRotation = 0.0f; private float _rotationVelocity; public float RotationSmoothTime = 0.12f; private GameObject _mainCamera; private void Awake() { if..