본문 바로가기

분류 전체보기107

[Unity] 게임오브젝트의 회전 x, y, z 축을 기준으로 물체의 회전 각도를 나타내는 방법을 오일러각(Euler Angle)이라고 한다. 그러나, Euler Angle로 물체를 회전시킬 때 Gimbal Lock 현상이 발생하는데, 축이 겹쳐지면서 제 기능을 못 하게 되는 현상이라고 한다. 우리가 Unity를 다루면서 알아야 할 것은 Euler Angle가 Gimbal Lock 문제를 내재하고 있기 때문에 Unity가 물체를 회전시킬 때 Quaternion을 사용하고, 따라서 우리는 Euler Angle을 Quaternion으로 바꾸어 사용해야 한다는 것이다. 1. Quaternion.Euler 값을 통해 Euler Angle을 Quaternion으로 변환.void RotateUsingTransform(){ gameObject... 2024. 6. 8.
[Simulation] 백준 14719: 빗물 14719번: 빗물 (acmicpc.net) 처음에는 각 column 간의 차이를 위주로 접근하다가, 위에서부터 한 row씩 훑고 내려오면서 연산하는 방식으로 접근을 달리했다. 맨 위 row 부터 순회하면서, 만일 값이 1인 칸을 이미 만난 상태라면 이후 0인 칸을 만날 때마다 값을 더해준다. 만일 다시 값이 1인 칸을 만나면, 해당 값을 정답에 더해주고 0으로 초기화한다. 양 옆이 뚫려 있다고 생각해야 하므로, 다음 row로 내려갈 때 값을 0으로 초기화한다. 이 때 1인 칸을 만났는지 여부를 확인하는 flag(여기서는 isFill)을 false로 초기화 해 준다.#include #include using namespace std;int main(){ ios_base::sync_with_stdio.. 2024. 6. 8.
[ShaderGraph] 자릿 수 변환 Shader Graph에서는 자릿수가 다른 노드들끼리도 연결할 수 있다. 자릿수가 다른 노드끼리의 연결은 다음 규칙을 따른다.1. 한 자리 수(float)을 여러 자리 수(Vector2, Vector3, Vector4)에 연결: float의 값으로 모든 자릿수가 채워짐2. 여러 자리 수를 자릿수가 다른 여러 자리 수에 연결2-1: 모자란 경우, 앞에서부터 차례대로 채우고 남는 자릿수는 비워 둠2-2: 더 많은 경우, 앞에서부터 차례대로 채우고 남는 자릿수는 버림. 예) 값이 1인 float 노드를 Vector3 노드에 연결하면 그 값은 (1,1,1)이다.예) 값이 (1,1) 인 Vector2 노드를 Vector3 노드에 연결하면 그 값은 (1,1,0)이다.예) 값이 (1,1,1,1)인 Vector4 노드.. 2024. 6. 7.
[Unity] Unity Event UnityEvent란, C#의 event+delegate를 래핑해 둔 것이다. C#에서 event는 게시자가 신호를 발신하여, 그 구독자가 해당 신호를 수신하게 하는 것이다. 또한, delegate는 함수를 가리키는 포인터 개념이다.  어떤 event를 구현할 때, 해당 이벤트를 발행하는 주체와 구독하는 주체를 분리하고, 서로가 서로를 인지하지 않도록 하여 기능이 추가될수록 코드가 점점 복잡해지는 것을 막기 위해 사용한다.  엔터 버튼을 누르면 이벤트가 발동되고, 해당 이벤트의 구독자들이 메시지를 출력하는 기능을 만들어 보겠다. 먼저, Event를 발행할 주체에 UnityEvent를 정의하고, 해당 이벤트를 발동시킬 함수를 정의한다.using System;using System.Collections;us.. 2024. 6. 7.