목록유니티 여러가지 (23)
피너클의 it공부방
플레이어 캐릭터가 레이캐스트를 쏜다라고 가정하겠다. 먼저 플레이어 캐릭터의 위치가 필요하다.이건 간단히 transform.position으로 구할수 있다. 그 다음에는 플레이어를 기준으로 마우스의 방향을 구해야 한다.Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);Vector2 rayDirection = (mousePosition - transform.position).normalized; Camera.main.ScreenToWorldPoint(Input.mousePosition) 으로 마우스의 위치를 구한다음플레이어 위치와 빼주고 normalized 해줌으로서 마우스의 방향을 구해준다. RaycastHit2D hit..

빌드하려고 하는데 갑자기 이런게 떴다.오류내용을 자세히 보면 recommend부붙이 보인다.gradle 이랑 compileSdkVersion 뭐 어쩌고 하고 있는데 이유는 모르겠는데 지금 Target ApI Level이 API level 33으로 되어있다. 그래서 이걸 highest installed로 바꿨더니 갑자기 작동된다. 이유는 모르겠다.

ctrl + shift + f : scene 화면이랑 game화면이랑 똑같게 카메라 움직이는 단축키카메라 선택하고 ctrl shift f 누르면 위에 gif처럼 움직인다.

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게임 만들고 싶을때 사용하면 좋다.

유니티 안드로이드 빌드 하려고 했는데 오류가 났다. 저기있는 \유니티프로젝트\ 이게 문제다.빌드하려는 프로젝트의 경로 안에 한글로 되어있는 폴더이름이 있어서 그랬다.그래서 이 "유니티프로젝트" 이름을 바꾸려고 하니 그럼 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가 작동되는..