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:


댓글 달기