C# 상속, 함수 오버로딩 … 유한 상태 머신..


public class BaseState {
//  ////////////////////////////////////////////////     Public
public BaseState mExitState;
public string mName;

//  ////////////////////////////////////////////////     Protected  ** 상속받은 자식 클래스에서 인식 가능
protected bool mDidExecute_Entry = false;
protected uint mCounter;

//  ////////////////////////////////////////////////     Main Actions...  virtual 은 override 대상이라는 뜻..
public virtual BaseState Action() {
    if (!mDidExecute_Entry) EntryAction();
    DuringAction();
    if ( ExitCondition() ) {
      ExitAction();
      return mExitState; // Setting Next Action...
    }
    return this;
}

public virtual void DuringAction() {
    Debug.Log("BaseState :: DuringAction  \n");
}

public virtual bool ExitCondition() {  // Condition.. true or false...
    return false;
}

public virtual void EntryAction() {
  mCounter = 0;
  mDidExecute_Entry = true;
}

public virtual void ExitAction() {
  mDidExecute_Entry = false; // In case of Entering Again....
}

//  ////////////////////////////////////////////////     생성자
public BaseState() {
}
public BaseState( string pName ) {   mName = pName;  }
}

상속 받는 방법…

//  ////////////////////////////////////////////////     ////////////////////////     >>>>>  상속 받은 자식 클래스....  <<<<<
public class StateShop : BaseState {

//  ////////////////////////////////////////////////     Creation

public StateShop() : base () {}

public StateShop( string pName ) : base ( pName) {  }  // 이런 식으로 상위 생성자 호출</pre>
&nbsp;

public override void DuringAction ()  // override : 상위 함수를 부르지만, new 는 따로 논다..
{
    base.DuringAction ();
}


Advertisements

C# 상속, 함수 오버로딩 … 유한 상태 머신..”에 대한 4개의 생각

      • 상태머신은 아니고.. 유니티3D에서 상속을 쓰려는데 난감해서 찾다가 왔어요..
        정작 답은 얻었지만, 상속을 써서 구현해보니
        유니티같은 엔진에선 조금 껄끄러운 부분이 많네요… 감사합니다 좋은하루되세요

      • 그렇군요.. 저희는 간단한 게임이지만.. 그럭저럭 상속, 콜백 함수, 등 가능하면 C# 을 제대로 쓰려고 노력하고 있습니다. 제대로 안쓰면 플러그인을 쓰지도 못해서요..
        저희 게임 한번 해 보세요. 이제 출시한 지 한달이 안되는 풋풋한… 그래도, 동접자는 계속 느는 추세입니다.
        http://itunes.apple.com/us/app/real-penalty-shoot-out-online/id557593268?l=ko&ls=1&mt=8
        그럼 좋은하루 되시구요..

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중