Vector3 : X, Y, Z 3를 3차원 공간에서 위치나 방향을 표현하는 데 사용됩니다.
Quaternion : 회전을 나타대는데 사용, (x, y, z, w) 형태로 표현되며 네 개의 요소로 구성됩니다.
PlayerPrefs : 간단한 기록을 로컬에 저장할 때
윈도우 플랫폼에서는 사용자 레지스트리에 저장, 모바일에서는 캐시파일로 저장
이벤트 프로그래밍
어떤 특정 행동을 취했을 떄 나오는 반응
이번 시간엔 커뮤니케이션 게임 만들기!
딱 어제 내가 게임을 만든다면... 난 게임을 아무고토 모르지만 어릴 때 즐겁게 하던
공주키우기, 딸기노트, 프린세스메이커, 농사게임 이런거라면 어쩌면 가능할지도 말을 했었는데..! 꺄
이번 강의는 딜리셔스게임즈 김병권 파트장님께서 고생해주셨습니다.
오늘도 유니티짱을 불러오기
프리팹 안에 들어있는 유니티짱을 데려오고, 스크립트를 위 세개를 꺼줬고,
나를 바라보도록 로테이션 y값을 180 을 줬습니다!!
조명도 예뻐보이게 조명 설정
카메라 설정 유니티짱을 중앙에 오도록 위치값조정했고, 배경색을 솔리드컬러로 주었습니다!
좀 더 가까이서 볼 수 있도록 Field of View를 30
실행을 해보면 유니티짱이 화면 중앙에서 알맞은 크기로 서 있습니다.
카메라를 마우스 드래그로 이동할 수 있도록 우선 컨트롤 스크립트를 만들어주고 메인카메라에 넣어줍니다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
void Update()
{ //왼쪽 드래그로 카메라 이동
if (Input.GetMouseButton(0))
{
Camera.main.transform.Translate(
Input.GetAxis("Mouse X") / 10,
Input.GetAxis("Mouse Y") / 10,
0);
}
// 오른쪽 드래그로 카메라 회전
if (Input.GetMouseButton(1))
{
Camera.main.transform.Rotate(
-Input.GetAxis("Mouse Y") * 10,
Input.GetAxis("Mouse X") * 10,
0);
}
}
}
이렇게만 되면 회전이 매우 어렵습니다...
해서 CameraParent를 만들어서 mainCamera를 자식으로 넣어주고
스크립트를 조금 수정해줍니다. 확대 축소도 함께 넣었읍니다
public class CameraControl : MonoBehaviour
{
public GameObject target;
Vector3 defPosition;
Quaternion defRotation;
float defZoom;
private void Start()
{
// 기본 위치 저장 초기화
defPosition = target.transform.position;
defRotation = target.transform.rotation;
defZoom = Camera.main.fieldOfView;
}
void Update()
{ //왼쪽 드래그로 카메라 이동
if (Input.GetMouseButton(0))
{
target.transform.Translate(
-Input.GetAxis("Mouse X") / 10,
Input.GetAxis("Mouse Y") / 10,
0);
}
// 오른쪽 드래그로 카메라 회전
if (Input.GetMouseButton(1))
{
target.transform.Rotate(
-Input.GetAxis("Mouse Y") * 10,
Input.GetAxis("Mouse X") * 10,
0);
}
// 휠 회전으로 확대/축소
if (Input.GetAxis("Mouse ScrollWheel") != 0)
{
Camera.main.fieldOfView += (20 * Input.GetAxis("Mouse ScrollWheel"));
if (Camera.main.fieldOfView < 10)
Camera.main.fieldOfView = 10;
else if (Camera.main.fieldOfView > 100)
Camera.main.fieldOfView = 100;
}
// 휠 클릭으로 설정 초기화
if (Input.GetMouseButton(2))
{
target.transform.position = defPosition;
target.transform.rotation = defRotation;
Camera.main.fieldOfView = defZoom;
}
}
}
*마우스 트랙패드로도 잘 대응이 됩니다!
하지만 휠클릭을 터치패드로 어떻게 하는지 아시는분..........ㅎ
그리고 오디오 사용하기 !
넘모 소중해서 따로 정리해두었습니다.
'UNITY_C#' 카테고리의 다른 글
유니티_오디오 사용하기_날짜별 오디오 이벤트주기 (0) | 2023.09.20 |
---|---|
유니티_휠 컨트롤로 확대시 오브젝트 거꾸로 보여지는 현상 (0) | 2023.09.20 |
[유데미x스나이퍼팩토리]4회차_0918_(Unity) 10주 완성 프로젝트 캠프_도트먹기게임,시점특징유니티 (0) | 2023.09.18 |
[유데미x스나이퍼팩토리]3회차_0915유니티(Unity) 10주 완성 프로젝트 캠프_에셋활용 (0) | 2023.09.15 |
[유데미x스나이퍼팩토리]과제_0914유니티(Unity) 10주 완성 프로젝트 캠프_기초 학습_과제_미니게임커스텀 (0) | 2023.09.15 |