목록전체 글 (248)
피너클의 it공부방

ForceMode : Rigidbody.AddForce 사용할때 적용하는 옵션이다.Force, Acceleration, Impluse, VelocityChange 총 4개가 있다.정의Force : 계속해서 힘을 더해준다. 질량이 적용된다.Acceleration : 계속해서 가속력을 더해준다. 질량은 무시한다.Impluse : 갑자기 힘을 준다. 질량이 적용된다.velocityChange : 갑자기 속도 변화를 준다. 질량은 무시한다.예시Force시작하자마자 Vector3.forward * 100f 의 힘을 줘보겠다.자세히 보면 아주 미세하게 움직이는걸 볼수있다.그렇다면 update문에 적어놓으면 어떻게 될까?속도가 점점 올라가는걸 볼 수 있다.여기서 중요한건 force는 질량이 적용된다는 것이다. 질량 ..

Rigidbody.Mass : 오브젝트의 질량을 나타낸다.떨어지는 속도 이런거에 관련 있는게 아니다.얼마나 무거운가 이런거다예시왼쪽에 있는 블럭은 mass를 10로 설정했고 오른쪽에 있는 블럭은 mass를 1으로 설정했다.이제 각 블럭에게 총을 쏴보겠다.오른쪽은 한방에 날아가지만 오른쪽은 날아가지 않는다. 질량이 커서이다. 그래서 여러번 쏴줬다.골프채로 골프공은 멀리 날릴수 있지만 볼링공은 멀리 못날리는 것과 같다.

CursorLockMode.Locked : 마우스 커서를 게임뷰 가운데에 고정시킬때 사용fps게임할때 처럼 마우스를 사용할수있다.시연위 코드는 화면을 터치할때마다 마우스의 좌표를 로그로 보여주는 함수이다.클릭할때마다 마우스 좌표가 보인다.그럼 CursorLockMode.Locked를 하면 어떻게 될까마우스를 클릭하자 마우스 포인터가 사라지며 같은 좌표만 찍히는걸 볼수있다.마우스를 미친듯이 움직이며 클릭하자 다른 값이 나오긴 했지만 차이가 거의 없는걸 알수있다.사용예시fps게임 만들고 싶을때 사용하면 좋다.

블렌더 하다보면 3d커서가 월드 중앙에서 벗어나 있는데 다시 월드 중앙으로 가져오고싶을때가 있다.그럴때 SHIFT + S 하면 위처럼 요상한게 많이 뜨는데Cusor to World Origin를 클릭하면 월드 중앙으로 이동한다.클릭하고 curor to world origin쪽으로 이동만 시켜도 되는거 같다.잘 이동한다.

유니티 안드로이드 빌드 하려고 했는데 오류가 났다. 저기있는 \유니티프로젝트\ 이게 문제다.빌드하려는 프로젝트의 경로 안에 한글로 되어있는 폴더이름이 있어서 그랬다.그래서 이 "유니티프로젝트" 이름을 바꾸려고 하니 그럼 Unity Hub에서 프로젝트가 열리지 않았다.그래서 다른 폴더를 만들고 그 안에 모든 프로젝트를 옮겼다.먼저 새로운 폴더를 만들었다. 나는 "UnityProject"라고 이름 붙였다. 그리고 Unity Hub의 프로젝트 경로를 바꿨다.빨간 원 안에 톱니바퀴 모양을 누르고좌측 Projects 안에 Project location을 바꾼다. 이렇게 바꾼다음에 프로젝트를 UnityProject안으로 옮겼다.그냥 "유니티프로젝트"폴더 안에 있는 프로젝트 전체를 복사에서 "UnityProject"..

Coroutines : 여러 작업을 동시에 하고 싶을 때 사용하는 메서드혹은 특정 작업을 본인이 원하는 만큼 천천히 할때 사용할수도 있다.기본 구성 요소 필수로 들어가야하는것이 2가지다.1. IEnumerator : 코루틴의 반환 타입이다.IEnumerator가 무슨 타입인지는 나중에 설명하겠다. 너무 어렵다.2. yield return : 코루틴의 반환문이다. yield또한 나중에 설명하겠다. 주로 시간 지연시킬때 사용한다.coroutine 시작 방법 위의 방법 크게 2가지가 있다.그럼 만약에위에 처럼 코루틴이 함수가 매개변수를 받야하 한다면 (int a) 어떻게 해야 할까위에 처럼 하면 된다. 주로 사용하는 WaitForSecond를 이용해 예시를 보이겠다.new WaitForSeconds(float..

Header : 유니티 Inspecter에 제목을 보여줌Inspecter란 유니티 객체를 편집할 때 사용하는 창 사용예시이렇게 코드를 짰다면 Inspecter에는"이거는 int", "이거는 float" 이렇게 제목들이 보여진다.

Vector3.Lerp (Vector3 a, Vector3 b, float f) : a + (b - a) * f를 반환하는 함수예시로 알아보자 1번 Vector3 a는 (0, 0, 0) 이고 Vector3 b는 (10, 0, 0), float f는 0.5이다.이때 Lerp를 사용하면 Vector3 v에는a와 b사이 50%만큼의 자리의 값, 즉 (5, 0, 0)이 들어가게된다.그럼 f에 0.7을 넣으면 어떻게 될까당연히 (0, 0, 0)과 (10, 0, 0) 70%사이 값인 (7, 0, 0)이 나오게 된다.2번그럼 f에 -1이나 2를 넣게 되면 어떻게 될까?오류가 뜨거나 (10, 0, 0)의 값을 넘을거라 예상했는데 -1은 0으로 계산되고 2는 1로 계산되는거 같다. 위는 Vector3.Lerp가 작동되는..

Time.deltaTime : 마지막 프레임에서 현재 프레임까지의 간격그렇다면 Time.deltaTime은 왜 사용되는 것일까?컴퓨터마다 fps가 다르기 때문이다. FPS란Frams per Second : 초당 프레임이다.FPS가 60이면 1초당 60개의 프레임을 보여주는 것이고FPS가 10이면 1초당 10개의 프레임을 보여주는 것이다. 프레임이란한장의 사진이라 생각하면 된다.프레임이 다르면 위에는 fps 5이고 아래는 fps 20이다. 확실히 차이나는것을 볼수있다. 이때 생기는 문제각 컴퓨터마다 동일한 fps를 갖지 않으니 어떤 컴퓨터는 1초당 60프레임이고 다른 컴퓨터는 1초당 5프레임이라 하자그런데 유니티에서 사용하는 update함수는 프레임마다 작동된다.즉 update를 사용했을때 어떤 컴퓨터..

Quaternion.Euler(x, y, z) : (x, y, z) 값을 쿼터니언으로 바꿔주는 함수 쿼터니언이란3차원에서 회전을 표현할때 쓰는 개념이다.오일러각 사용중 발생할수 있는 짐벌락 현상을 예방하기 위해 사용한다. 오일러각이란rotation이 0, 0, 0일때는 오른쪽의 모양이다가x를 30으로 바꾸지까 x축을 기준으로 30만큼 돌았다. (빨간선)그냥 이게 오일러각이라 생각하면 편하다. 짐벌락 현상이란두개의 축이 겹쳐서 제 기능을 못하는 현상인데애들 음식 흘리지 말라고 쓰는 회전하는 간식 그릇있지 않나, 그거 교묘하게 겹치면 회전하지 않는다.그냥 그런 현상이라 생각하면 편하다. 진짜 간단하게 설명해보았다. 완벽한 원리를 깨닫기보다 간단하게 이해하는걸 목표로 했다. 이제 사용 예시를 보자1번물체의 회..