์•„๋ž˜๊ฐ€ CharacterManager ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค.


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class CharacterManager : Actor

{

ย  ย  BaseAction _nowAction; ์—ฌ๊ธฐ ๋ถ€๋ถ„์—์„œ ํ•„๋“œ์— ํ• ๋‹น์ด ์•ˆ๋˜๋ฏ€๋กœ ํ•ญ์ƒ null ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค๋ผ๋Š” ๊ฒฝ๊ณ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œน๋‹ˆ๋‹คย ย ย ย ย 


ย  ย  public override void MovingCheck(Vector3 moveDir) =>ย 

ย  ย  ย  ย  _nowAction.CheckMoveDir(moveDir);


ย  ย  public override void OnNormalAtk(ActorController.InputKey key, ActorController.InputState state) =>

ย  ย  ย  ย  _nowAction.CheckInputKeys(key, state);


ย  ย  public override void OnDodge(ActorController.InputKey key, ActorController.InputState state) =>

ย  ย  ย  ย  _nowAction.CheckInputKeys(key, state);


ย  ย  public void ChangeAction(string name) => _nowAction.ChangeAction(name);


ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย ย 

ย  ย  }

}


๊ทธ๋ฆฌ๊ณ  ์ด๊ฒŒย Actorย ์Šคํฌ๋ฆฝํŠธ ์ž…๋‹ˆ๋‹ค


public class Actor : MonoBehaviour

{

ย  ย  public virtual void MovingCheck(Vector3 moveDir) { }

ย  ย  public virtual void OnNormalAtk(ActorController.InputKey key, ActorController.InputState state) { }

ย  ย  public virtual void OnDodge(ActorController.InputKey key, ActorController.InputState state) { }

}


์šฐ์„  BaseAction์€ abstract ์ถ”์ƒํด๋ž˜์Šค ์ž…๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๊ถ๊ธˆํ•œ์ ์ด ์ €ย BaseAction _nowAction; ์ด ๋ถ€๋ถ„ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ค„๋ ค๊ณ  ํ•˜๋Š”๋ฐ start์— new๋ฅผ ํ•˜๋ฉด ์•ˆ๋˜๋Š”๊ฑด๊ฐ€์š”??

์ € ์˜ค๋ฅ˜๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋‚˜์š”?