공부 기록
-
24년 6월 10일 TIL공부 기록 2024. 6. 10. 23:48
인풋필드와 슬라이더의 상호작용.환결성정 기능을 구현 할 때 사운드 부분을 슬라이더로도 조절 할 수 있게 하고, 텍스트 입력으로도 적용을 하게 하고 싶었는데, gpt선생님이 내게 알려주셨다. 우선 UI에는 onValueChanged와 onEndEdit라는 UI시스템에서 사용하는 이벤트들이 있다. 이것들은 각각 값이 변경 될 때, onEndEdit은 입력이 마쳤을 때, 그러니까 텍스트를 입력한 후에 다른 곳을 클릭 하거나 엔터를 눌러서 Text공간에서 벗어날 경우에 호출한 콜이벤트에 함수를 추가 할 수 있게 하는 이벤트들이다. 그래서 onValueChanged를 통해서 값이 변경 될 때마다 함수를 호출 하게 만들고, onEndEdit를 통해서 Text를 입력 할 때마다 함수를 호출 하게 만들어 준다. 각..
-
24년 6월 7일 TIL공부 기록 2024. 6. 8. 17:00
Quaternion.Slerp 3번 째 매개변수는 0~1 사이에 숫자여야 하며, 문을 점진적으로 회전시키기 위해 반복 호출하면서 이 값을 증가시켜야 한다. 왜냐하면 문을 열려고 하고자 할 때 Quaternion.Slerp을 사용 하게 되면 시작 점과 끝 점의 거리를 구하고 거기서 3번째 인자만큼의(0~1, 1이면 끝까지) 회전을 주게 된다. 0.1로 하면 아래만큼 이동.이 때 코루틴이나 반복문을 써서 계속 0.1씩 이동 하게 한다면, 줄어진 거리에서의 거리를 다시 계산 할 것이고 거기서 또 0.1만큼 움직이게 되고 그걸 계속 반복 해서 영원히 0.1만큼 움직이게 될 것이다.그래서 이러한 문제를 해결하기 위해 이 0.1이라는 숫자를 나중에 1이 되어서 계산한 거리를 한 번에 이동하게 함으로써 반복을 멈추..
-
24년 6월 5일 TIL공부 기록 2024. 6. 5. 16:15
Quaternion.Slerp 매개변수 3개 ex) 0, 100, 0.1 -> 0에서 100의 중간 값. 0.1 -> 한 번 실행 될 때 10만큼 이동. rigidbody 레이충돌은 rigidbody가 없어도 됨. 프리펩을 직접 수정 하게 되면 프리펩에서 수정해도 하이어라키에 있는 것들 적용 안 됨.그러니까 막 만지지 말자. Quaternion.Euler와 Quaternion.EulerAngles의 차이.Euler가 좀 더 직관적이다. 90도까지만 회전을 하게 하고 싶었는데 EulerAngles 90도 이상 넘어갔다. 그 이유는 90도라고 하더라도 내부적으로 계산 어쩌구 ..... 해서 90도가 아니라고 한다. Euler는 90 코루틴
-
24년 6월 4일 TIL공부 기록 2024. 6. 4. 19:00
Time.time: 게임이 시작된 후 경과된 시간.Ray, RaycastHit, 그리고 Physics.Raycast는 Unity에서 레이캐스트(광선 투사)를 통해 게임 오브젝트와의 충돌을 검사하는 데 사용. 이 과정은 주로 플레이어가 게임 내 객체와 상호작용하거나 충돌을 감지할 때 사용 된다.핵심 개념Ray: 시작점과 방향을 갖는 광선. 화면 중심에서 특정 방향으로 발사할 수 있다.RaycastHit: Ray가 충돌한 정보를 담는 '구조체'. 충돌한 객체의 위치, 충돌 지점의 노멀, 충돌한 게임 오브젝트 등 다양한 정보를 제공.Physics.Raycast: 광선을 발사하여 광선이 충돌한 객체를 감지하는 함수. 충돌 정보는 RaycastHit 구조체에 저장. bool값을 반환. 맞나?if (Physics...
-
24년 6월 3일 TIL공부 기록 2024. 6. 3. 22:28
옵저버 패턴 (Observer Pattern)설명옵저버 패턴은 객체 간 일대다(one-to-many) 관계를 정의하여, 한 객체의 상태가 변경될 때 그 상태 변화를 모든 종속 객체에 통보하고 자동으로 갱신되도록 하는 패턴이다. 이 패턴은 주로 이벤트 핸들링 시스템에서 사용 된다.구성 요소Subject (주제): 상태를 관리하고, 옵저버들을 등록하거나 제거하는 역할Observer (옵저버): 주제의 상태 변화를 관찰하고, 상태가 변경될 때 실행되는 업데이트 메서드를 정의장점느슨한 결합: 주제와 옵저버가 독립적이므로, 주제의 변경이 옵저버에 직접적인 영향을 주지 않는다.확장성: 새로운 옵저버를 쉽게 추가할 수 있다.유연성: 주제의 변경을 자동으로 통보받아, 다양한 반응을 구현할 수 있다.단점복잡성 증가: 다..
-
24년 5월 31일 TIL공부 기록 2024. 5. 31. 12:31
Awake 초기화에 대해서값을 초기화 하는데 Awake를 많이 썼다. 그런데 이건 좋지 않다고 한다. Awake에 너무 그거 하면 안 된다고 한다. 문제가 생겼었는데 나는 먼저 초기화가 되어야 하고 그 다음에 초기화가 되어야 하는 코드들이 있게 작성을 했다. 이 때 둘 다 Awake일 경우에 순서를 정해줄 수가 없어서 먼저 초기화 돼야 할 것이 안 되고 나중게 초기화가 먼저 될 수가 있다. 그로 인해서 코드가 정상적으로 작동이 안 될 수가 있다. 그렇기에 이 부분을 신경을 쓰면서 작성 해야 한다. 방법으로는 초기화를 하는 함수를 직접 만들어서 수동으로 호출 하는 방법도 있고 Awake에서 if(null)등을 활용 해서 보완 하는 방법도 있다. =========rigidbody를 이용한 움직임에 대해..
-
24년 5월 30일 TIL공부 기록 2024. 5. 30. 07:12
Unity Input System에서 Action Type은 입력을 트리거하고 이벤트를 발생시키는 방법을 정의하는 데 사용 된다. 다양한 Action Type이 있으며, 각각의 유형은 특정한 상황 또는 입력 유형에 맞게 사용 된다. 일반적으로 사용되는 Action Type 몇 가지를 살펴 본다:Button:단일 이벤트를 발생시키는 키 또는 버튼에 대한 입력을 나타냄. 예를 들어, 게임에서 "점프" 버튼이나 "공격" 버튼에 사용 됨.Value:지속적인 값을 가지는 입력을 나타냄. 예를 들어, 조이스틱의 위치나 마우스의 이동량을 나타내는데 사용될 수 있음.Vector2/Vector3:2차원 또는 3차원 벡터 값으로 입력을 나타낸다. 보통 화면의 좌표나 객체의 방향을 나타내는 데 사용 된다.Composite:..