반응형
유니티 쓸 때
쓰면서 느낀거
- C#을 쓰는거라 그런지 C언어와 크게 다르지 않음
- Unity에서 쓰이는 언어들이 낯설음 (GetComponent 라던가~ new Vecotor2 ~)
- NULLReferenceException
- 진짜 몰라서 어려웠음
- 오브젝트를 레퍼런스하지 않는 레퍼런스 변수에 액세스하려고 하면 발생
- 그래도 어디가 문제인지 알려줌
- 이런 식으로 GameObject / InputField / Button UI요소를 명확히 쓸 것!
- GameObject
- 캐릭터, 아이템, 광원, 카메라, 특수 효과, 등 게임 세상을 구성하는 모든 오브젝트는 게임 오브젝트
- 독자적으로 많은 것을 하기보다는 실질적 기능을 수행하는 컴포넌트(Components) 의 컨테이너 역할
- 위의 사진에서는 다른 오브젝트들(뼈대 들)을 받아옴
- InputField
- 유니티에서 텍스트를 입력받을 수 있는 UI 요소
- 사용자가 키보드를 사용하여 텍스트를 입력하거나, 터치 입력을 통해 텍스트를 입력 가능
- 주로 사용자가 이름, 비밀번호 등을 입력하는 데 사용됨
- 위의 사진에서는 다른 오브젝트들 안의 Input Field 값을 받는데 사용
- Button
- 유니티에서 클릭할 수 있는 UI 요소
- 사용자가 버튼을 클릭하면 지정된 동작이 실행되도록 설정할 수 있음
- 주로 메뉴를 선택하거나 게임에서 특정 동작을 수행하는 데 사용
- Button 안에 OnClick 안에서 설정하여 사용
- 이렇게 비워져 있는 경우에도 발생하는 거 같음
- 저기 그림처럼 해당 오브젝트에서 변수 값을 받아오고 싶다면 받아 올 오브젝트에 해당 오브젝트를 넣을 것
- 이럴 경우 위의 문제가 해결 되었음
반복문

- 마지막의 yield ~~ 에서 WaitForSeconds()를 써서 0.2f만큼 기다렸다가 계속 실행하도록!
싱글톤

- 이렇게 해서 다른 스크립트에서 이 스크립트 변수 및 함수 사용 가능
회전
- transform.Rotate(new Vector3( x, y, z) * Time.deltaTime);
- 속도 조정 가능
- speed 변수 추가하여 x, y, z 에 바로 곱하면 됨
- 음수 곱하면 반대로 감
- 부모 오브젝트는 회전에 큰 문제가 없다
- BUt, 자식 오브젝트를 회전시킨다면 local 사용
rigid body
- 강체
- 그냥 물체 덩어리
- 무게, 공기저항
- 중력 사용
- 물리에 관한 내용들이 있음
hinge joint
- rigid body들 끼리 묶음
- 관절 설정을 잘 해야함
- 계속 변화를 원하면 auto
- 하지않으면 auto를 풀면된다
- anchor를 움직임으로써 연결된 물체를 움직일 수 있다
- 이거 굴삭기 할 때 obj 파일 끌고 와서 했을 때는 잘 안됐는데 - 3d object (cube) 만들어서 cylinder 만들어서 했을 때는 잘됐음 (나를 참 애먹였다)- 뼈대를 직접 만들어서 할 경우 작업이 쉬워짐
- 관절의 위치를 전체 좌표가 아닌 오브젝트 내부의 좌표로만 움직여 더 확실하게 가능 - 대신에 직접 만들어야 하는 만큼 원본 만큼의 퀄리티가 낮을 수도 있음 - 하지만 뼈대 부분이라 Cylinder 대충 모양은 따라하기 쉽다- 하면서 느낀 점
- 연결되는 부분 중에서 회전하기에 적합한 곳에 hinge joint를 넣는다
- joint + - 값에 따라 팔의 각도가 위아래로 움직이기에 각도를 잘 살펴 봐야한다
- 즉 joint값이 바로 팔의 각도 값이 되는 것이 아니라 joint 값에 따른 팔의 각도가 결정 되기에 joint를 움직여서 팔의 각도의 최소 최대를 구한 후 joint에 적용시킨다
- 공기 저항이 낮으면 팔이 계속해서 움직이기에 Drag 값을 10정도 주는게 좋아보인다.
Script Graph
- state machine / script machine
- 코딩으로 설계 하는 것 처럼 자잘자잘한 오류가 잘 없음
- 하지만 순서는 코딩과 비슷하다
- 논리 연산, 그 외에 어떤 변수가 호출 되면 그 변수에 대해서 Event를 실행
- 변수에 관해서는 기본적으로 Get / Set
- 대신, Name칸 잘 맞춰 넣어야함
- Game Manager를 통해서 List 목록을 받을 수 있음
- Get List Item과 함께 사용
- Index에 들어갈 번호는 상황에 맞게
- Scean 전체에 저장된 내용을 가져 올 수 있고
- Saved 실행 되었던 것으로 부터~ 실행 되고 있는 것까지 다 받아 올 수 있음
- 점수 기록, 데이터 저장 등
- Object의 변수들도 가져올 수 있다
유튜브 추천
- https://www.youtube.com/@goldmetal
- 골드메탈
- 2개 정도 따라 해봤는데 엄청 유익하고 강의도 되게 많아서 추천
반응형
'Unity 게임' 카테고리의 다른 글
| (Unity) flutter unity widget 사용 후기 (3) | 2024.04.11 |
|---|---|
| (Unity) 오브젝트 내부의 Script를 버튼 이벤트로 발생시키기 (6) | 2024.04.04 |