[2023 메타버스 달서 공모전] 출품을 위해, 제페토를 공부하는 일지
Main Camera
오브젝트를 키보드와 마우스로 조작하는 코드를 작성하였다.📑 CameraController.ts
스크립트 생성
import
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { Input, Time, Vector3 } from 'UnityEngine';
변수
public move_speed: number = 0; // 5
Update()
함수
Update() {
// 키보드로 카메라 이동
const key_x: number = Input.GetAxis("Horizontal") * this.move_speed * Time.deltaTime;
const key_y: number = Input.GetAxis("Jump") * this.move_speed * Time.deltaTime;
const key_z: number = Input.GetAxis("Vertical") * this.move_speed * Time.deltaTime;
this.transform.Translate(new Vector3(key_x, key_y, key_z));
}
실행 시 "You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings" 에러가 뜬다.
유니티 최상단 메뉴 [Edit] → [Project Settings]를 클릭, Player → Other Settings → Configuration의 Active Input Handling의 값을 Both로 설정한다.
[Project Settings]의 Input Manager → Axes → Jump의 Negative Button의 값을 left shift로 설정한다.
Main Camera
오브젝트에 해당 스크립트를 컴포넌트로 부착한다.
실행 결과
📑 CameraController.ts
스크립트 작성
변수
public rotate_speed: number = 0; // 200
Update()
함수
Update() {
// ...
// 마우스로 카메라 회전
const mouse_x: number = -Input.GetAxis("Mouse Y") * this.rotate_speed * Time.deltaTime; // 좌우
const mouse_y: number = Input.GetAxis("Mouse X") * this.rotate_speed * Time.deltaTime; // 위아래
if (Input.GetMouseButton(0)) {
this.y_rotate = this.transform.eulerAngles.y + mouse_y;
this.x_rotate = this.transform.eulerAngles.x + mouse_x;
this.transform.eulerAngles = new Vector3(this.x_rotate, this.y_rotate, 0);
}
}
실행 결과