본문 바로가기
개발자가 되어보자..공부공부

C# 유니티 공부 5 - 예제 프로젝트 (3d 물리 이동, Scene 전환, UI, 사운드 삽입, 카메라 이동)

by 묭묭이와소담이 2022. 12. 5.
반응형

* Player

1) 무한 점프 제한

- 계산기의 IsNewNum 응용.

- Isjump라는 bool형 변수를 생성하여 활용.

- Public Float jumpPower를 유니티상에서 조절할 수 있게 하였지만, 그냥 코드에 숫자를 집어넣어도 됨.

 

2) 상하좌우 이동

Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
rigid.AddForce(vec * 30 * Time.deltaTime, ForceMode.Impulse);

vec라는 Vector3 변수를 생성.

AddForce()에서 vec를 적용해줌. (vec만큼의 힘을 가하는 함수.)

 

3) item 먹을 때, 효과음 발생.

- 컴포넌트의 Audio Source 추가.

- Unity Asset Store에서 무료 Audio Import.

- 컴포넌트 Audio Source로 드래그.

- Awake 등 비활성화 구간에서는 함수가 잘 실행되지 않을 수 있음.

- audio라는 변수명은 내부적으로 어딘가에서 사용중인듯함.(밑줄표시되어있음.)

audio1 등 다른 변수명 써주면 됨.

 

 

* 아이템

1) 오브젝트 회전

- TransFrom.Rotate() 활용.

- Space.World : 오브젝트의 축이 아닌, 기본 배경 축.

 

2) SetActive()

- true, false의 bool형 함수이며 컴포넌트를 해제하여줌. (눈에 안보이게 됨.)

 

 

* 좌표 기준 변경(카메라)

- Vector3의 변수 생성. (Vector3 offset;)

- 카메라와 플레이어 사이의 거리를 offset으로 만들고, 다시 플레이어로부터 offset을 더해서 카메라 거리를 항상 offset으로 유지하게 만들어 줌.

- GameObjet 클래스의 FindGameObjectWIthTag 함수 사용.

(Find계열의 함수는 cpu메모리를 이용한 연산을 반복해야 하기 때문에, 많이 사용하는 것은 좋지 않음.)

 

 

* 장면 이동

- using UnityEngine.SceneManagement; 를 등록하고 사용해야함.

- SceneManager.LoadScene() 함수 사용.

(유니티 이름, build setting의 index 번호 사용 가능.)

- 파일 - build setting에서 각 unity를 추가해주어야 함. (필수)

- 게임매니저의 Stage 번호, itemcount 등 여러 변수를 직접 조정해주면서 화면 전환이 잘 일어나는지 확인 필요.

 

* UI

- Cansvas 추가. 

- 2D모드에서 작업하는게 편함.

- Imgage 추가 후, Shift / Alt 를 이용해서 꼭지점을 맞춰주는 작업을 해야함. 

 

public으로 선언한 변수는 기본값=0으로 컴포넌트에 표시가 되며, Unity에서 수치 조정 가능.

 


 


 

 

 

 

 

반응형

댓글