[Unity 강의] 뱀서라이크 강의 - 컨텐츠 기초
카테고리: Class VamSurLike
태그: C#, Unity, VamSurLike
1. 리소스 관리
✔ Sprite, Sounds, Font 등
✔ Sprite, Sounds, Animation으로 나누어 관리?
✔ player, monster 오브젝트에 관련된 것으로 나누어 관리?
뭐가 나은지 고민해 보고 사용하기.
1. GameScene
✔ 씬을 관리하는 매니저 GameObject를 하나 생성, GameScene(Script)로 관리
✔ 씬에서 사용할 오브젝트의 원본(Prefab)을 가지고 있는 Script
✔ 게임 시작 시 GameScene 오브젝트가 모든 리소스를 담아두고 진행하면서 사용
✔ 현재 드래그 앤 드롭으로 할당 -> 나중에 Addressable로 할당
using UnityEngine;
public class GameScene : MonoBehaviour
{
public GameObject _slimePrefab;
public GameObject _goblinPrefab;
public GameObject _snakePrefab;
GameObject _slime;
GameObject _goblin;
GameObject _snake;
void Start()
{
GameObject monsterObjects = new GameObject() { name = "@Monsters" };
_slime = GameObject.Instantiate(_slimePrefab);
_goblin = GameObject.Instantiate(_goblinPrefab);
_snake = GameObject.Instantiate(_snakePrefab);
//_slime.transform.parent = monsterObjects.transform;
_goblin.transform.parent = monsterObjects.transform;
_snake.transform.parent = monsterObjects.transform;
_slime.name = _slimePrefab.name;
_goblin.name = _goblinPrefab.name;
_snake.name = _snakePrefab.name;
_slime.AddComponent<PlayerController>();
Camera.main.GetComponent<CameraController>().Target = _slime;
}
}
Find 문제점
✔ 생명주기 find 이후 생성되면 찾지 못한다. ✔ 현재 씬의 모든 걸 가지고 있는 GameScene을 통해 부여하기.
GameScene을 통해 CameraController에서 필요한 Target 찾기
using UnityEngine;
public class GameScene : MonoBehaviour
{
public GameObject _slimePrefab;
GameObject _slime;
void Start()
{
_slime = GameObject.Instantiate(_slimePrefab);
Camera.main.GetComponent<CameraController>().Target = _slime;
}
}
using UnityEngine;
public class CameraController : MonoBehaviour
{
public GameObject Target;
void Start()
{
Target = GameObject.FindWithTag("Player");
}
void Update()
{
if (Target == null)
{
return;
}
//TODO
transform.position = new Vector3(Target.transform.position.x, Target.transform.position.y, -10);
}
}
이것저것 메모
Sprite, UI 차이
✔ Sprite, UI의 차이
✔ Sprite - 카메라 화면에 실질적으로 있는
✔ UI - 카메라와 상관없이 화면에 표시
카메라
✔ 카메라 = LateUpdate (모든 업데이트 실행 후 카메라)
이동방향
✔ normalized 방향 정보 ( moveDir.normalized; )
체크요소
✔ Animation 만드는 거 2개 이미지 드래그 드롭하면 가능
✔ Prefabs 작업 시 override 체크
✔ 배경 작업할 때 - Order in Layer 규칙 정하기.
✔ 리소스 관리 규칙 정하기(오브젝트별, 폴더 분류).
✔ 게임 플레이에 따라 순차적으로 작업 (플레이어 이동 -> 스킬 -> 아이템 드롭)
잡담, 일기?
파이팅
댓글남기기