유니티 공부..골드메탈님 3d쿼터뷰게임 마무리
unity 유니티 공부 2025. 1. 5. 19:09 |
https://www.youtube.com/watch?v=9g4prUqF2oA
저 원 zone 을 입장시 넥스트 스테이지 활성화
다음 스테이지( Scene )로 이동이 아니라,
이동 한 거 처럼 보이게 할 거임
상점 비활성화하고 넥스트 스테이지도 비활성화 할 예정
+
일단
zone 아래 자식오브젝트로 3d object - 3d text 생성
(최신버전에선 text mesh pro)
public class StartZone : MonoBehaviour
{
public GameManager manager;
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
manager.StageStart();
}
}
이 오브젝트에 닿을시,
스테이지 시작 (=스테이지 변경) 이라는 뜻의 스크립트
+
스크립트 속 퍼블릭 변수 이름은 itemShop
하이어라키 오브젝트 이름은 Item Shop
같은 걸 지칭하지만, 일부러 이렇게 다르게 이름지음
+
stage++;
stage += 1;
stage = stage + 1;
씨샵에서는 위 코드 셋 다 동일하게 적용함
값을 1을 증가시켜줌
+
플레이어는 태그도 레이어도 전부 Player 로 설정할 것
+
player.transform.position = new Vector3(0, 0, 0);
플레이어 위치를 맵의 x y z 0 0 0 으로 이동시키겠다는 뜻
맵의 처음 시작 위치를 0 0 0 으로 설정함
되돌아 갈때도 저 0 0 0 위치로 지정함
+
int ranCoin = UnityEngine.Random.Range(0, 3);
랜덤 레인지 0~3 중 랜덤한 값 하나를 지정하겠다는 뜻
+
using System;
using Random = UnityEngine.Random;
Random 에 빨간줄 뜨면
맨 위 네임스페이스에 위 두개를 추가하라함
+
public void StageStart()
{
zone.gameObject.SetActive(true);
}
public void StageEnd()
{
zone.gameObject.SetActive(false);
}
스테이지 시작시 특정 오브젝트 활성화
스테이지 종료시 특정 오브젝트 비활성화 해주겠다는 뜻
+
if (stage % 5 == 0)
{
}
스테이지가 5 10 15 20 ... 이렇게 5 단위 일때
+
if ( !isJump && !isDodge && !isDead)
{
}
점프 중이 아닐때, 회피 중이 아닐때, 죽지 않았을 때
여러 조건을 설정할 때임
+
이렇게 조건문을 매번 && !isState 를 스크립트 구간마다 일일히 복붙 하는건 노가다다
이 노가다를 줄일려면
bool CanPerformAction() {
return !isJump && !isDodge && !isDead;
}
void Update() {
if (CanPerformAction()) {
// 실행할 코드
}
}
이렇게 줄일 수 있다고 함
+
게임 메니저 스크립트에서, 씬 관련 함수 쓰려면
using UnityEngine.SceneManagement;
맨 위 네임스페이스 저걸 써야 함
+
SceneManager.LoadScene(0);
씬 넘버 0을 불러온다
지금 씬 넘버 0 에 위치할 시, 초기화 하는 거임
+
강좌 내에선,
플레이어 오브젝트의 인스펙터 창에 Manager 변수 지정후
Game Manager 오브젝트를 연결해 주었다.
플레이어 < - > 게임메니저
상호 작용을 위한 거라고 추측
+
게임 오버 버튼 오브젝트는
Navigation None 으로 설정해서
스페이스 바 같은 단축키로 눌러지지 않게 변경
+
Audio Source 컴포넌트,
Audio Resource 에 원하는 효과음 지정
public AudioSource jumpSound;
void Jump()
{
jumpSound.Play();
// 점프 사운드 재생
}
jumpSound.Play(); 를 로직 안에 넣어 재생되게 만듦
+
Play On Awake , 게임 시작시 자동 재생
이 옵션은 끈다
+
빌드 세팅- 프로젝트 세팅 가면
바탕화면에 보여질 아이콘 설정 가능
디폴트 커서도 설정 가능
+
아래쪽에 기본 화면 모드 설정가
풀 스크린 (전체화면) 이냐
윈도우드 (창모드)냐
+
Build 누르면 지금껏 만든 걸 다 포장해서
실행 가능한 파일로 만들어줌
출판 이라고 보면됨
처음 프로토타입은 빌드 시간은 2 분 걸림
+
나 혼자 데모 플레이만 하려면 굳이 빌드 할 필요는 없음
플레이 모드 ( ctrl P ) 만 써서 게임 체크해보면 되는 거임
1920 x 1080 테스트 결과
gpu 4.4 gb 사용 이니까... gpu 6gb 이상을 권장 사양으로 둬야 하겠는데?
권장사양 : GTX 1060 이상
+
빌드된 게임 시작시
유니티 로고가 강제로 뜨며 3초간 정지함
이거 없애고 싶은데...
->
Project Settings
- Player - Splash Image - Show Splash Screen 체크 해제
하면 없앨 수 있음
+
애니메이션 컨트롤러 정리
컨디션 스테이트 상태는 크게 두가지로 나뉨
Bool | Trigger |
true 냐 false 냐 | 발동 |
긴 시간동안 지속되는 것 | 짧게 한번 발동후 디폴트 idle로 돌아오는 모션 |
isJump isWalk isRun |
doDie doReload doSwap doSwing doShot doDodge |