[Unity 강의] 뱀서라이크 강의(컨텐츠 기초)
카테고리: Class VamSurLike
태그: C#, Unity, VamSurLike
1. 리소스 관리
✔ Sprite, Sounds, Font 등
✔ Sprite, Sounds, Animation 으로 나누어 관리?
✔ player, monster 오브젝트에 관련된 것으로 나누어 관리?
뭐가 나은지 고민해보고 사용하기.
1. SceneManager
✔ 씬을 관리하는 매니저 GameObject를 하나 생성, SceneManager(Script)로 관리
✔ 씬에서 사용할 오브젝트의 원본(Prefab)을 가지고 있는 Script
✔ 게임 시작시 SceneManager오브젝트가 모든 리소스를 담아두고 진행하면서 사용
using UnityEngine;
public class SceneManager : 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;
}
void Update()
{
}
}
Find 문제점
✔ 생명주기 find 이후 생성되면 찾지 못한다. ✔ 현재 씬의 모든걸 가지고있는 SceneManager 를 통해 부여하기.
SceneManager를 통해 CameraController에서 필요한 Target 찾기
using UnityEngine;
public class SceneManager : 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 규칙 정하기.
✔ 리소스 관리 규칙 정하기(오브젝트별, 폴더분류).
✔ Order in Layer 규칙 정하기.
✔ 게임 플레이에 따라 순차적으로 작업 (플레이어이동 -> 스킬 -> 드랍)
잡담, 일기?
파이팅
댓글남기기