Unity로 구현한 커맨드 패턴 질문
글쓴이: 이영현@Google / 작성시간: 금, 2018/05/25 - 11:33오후
안녕하세요 게임을 제작하는 고등학생입니다.
제가 공부하면서 배운 디자인 패턴을 활용하고 싶어서 플레이어 이동 및 공격등을 임시적으로 커맨드 패턴으로 캡슐화 시켰습니다.
그런대 생각보다 쉽지가 안더라구요
어떤 방법으로 해야 좀 더 유연한 코드가 될까요 ㅠㅠ
Command.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public abstract class Command { public virtual void Exeute() { } } public class MoveCommand : Command { private Rigidbody2D rigidbody; private float x; private float y; private MoveSpeed moveSpeed; public MoveCommand(Rigidbody2D _rigidbody,float _x,float _y, MoveSpeed _moveSpeed) { rigidbody = _rigidbody; x = _x; y = _y; moveSpeed = _moveSpeed; } public override void Exeute() { rigidbody.velocity = new Vector3(x, y); } }
PlayerClass.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public enum MoveSpeed { VERY_SLOW = 2, SLOW, NORMAL, FAST, VERY_FAST }; public enum AttakSpeed { VERY_SLOW, SLOW, NORMAL, QUICK, VERY_QUICK }; public class PlayerClass : MonoBehaviour { private int health; private int mana; private int healthPerSecond; private int manaPerSecond; private float damage; private MoveSpeed moveSpeed; private AttakSpeed attakSpeed; private Command key; private Rigidbody2D playerBody; void Start() { playerBody = GetComponent<Rigidbody2D>(); } void Update() { //Test if (Input.GetKey("d")) { key = new MoveCommand(playerBody, 1,0,moveSpeed); key.Exeute(); } else { key = new MoveCommand(playerBody, 0, 0, moveSpeed); key.Exeute(); } } }
어떤 방법으로 계선하는게 좋을까요
(아래는 수정하기를 잘못해서 글을 1개를 더 썻습니다. 죄송합니다 ㅠㅠ)
Forums:
댓글 달기