高度のユニティ:MVCプログラミングのアイデア

著作権:

  • :ブログパーク「あなたはメーカーの文化を夢、」ブログのスペース(URLに掲載された記事http://www.cnblogs.com/raymondking123/とマイクロチャネル公共番号「夢のメイカーズムーブメント」)
  • あなたは転載は自由ですが、完全な著作権表示を含めなければなりません!

MVC

ゲームの初期化

ユニティ・スタート・シナリオでは、ゲームの初期化を行うために、あなたは空のオブジェクトを作成する必要がある
スクリプトバインドするために、ヌルオブジェクトを
MonoBehavior MonoBehaviorから継承された:MainInitialicerを
最初PlayerControllerコントローラオブジェクトを作成し
、メソッドを定義します

void start()
{
     控制器初始化
     Controller = new PlayerController();
     调用显示视图界面方法
     Controller.ShowView
}

MVCの練習

パネルを作成し、攻撃の次のパネルの名前を設定するためのボタンを作成し、最高に調整合う
次Mainpanelは、テキストコントロール入力EXPベストフィット追加
シーンスクリプト、そこに私のフォルダを作成すると
、スクリプトはアプリケーションアプリケーションフレームワークフレームワークのフォルダが存在する
フレームワークは、内部MVCフレームワークを書くことは
、いくつかのスクリプトを必要とする:
modelbaseモデル層の基底クラス、
ViewBaseインタフェース基本クラス、
ControllerBase制御層の基本クラス、
MVC外側のクラスは
ファサードを介して3層の様々な構成要素へのアクセスを統一することができる
MVC外部クラス、 MVCフレームワーク、外国簡単な操作で、内部クラスは見ることのできない
ような3つの書き込みコードが続きます

ControllerBase:

public abstract class ControllerBase
{
// 执行命令(一段功能代码)
    public abstract void Execute(object param); // 对谁攻击,用什么技能攻击,技能的id
// 执行一个功能
}
//public class AttackController : ControllerBase
//{
//  public override void Execute()
//  {
//      throw new System.NotImplementedException();
//  }
//}
//var ac = new AttackController();
//ac.Execute()

viewbase:

Viewクラス:
1、ViewBaseから継承した各クラスは、各ビューの名前を提供しなければならない独自の名前がある
2を、ViewBaseから継承する各クラスは、彼がそのような経験の増加感覚として「AttackEventを」気にイベントを登録する必要があります利益
3、各クラスがViewBaseから継承し、それらが関係するイベント「attackevent」に対処する必要があります

public abstract class ViewBase : MonoBehaviour
{
    public IList interestedEvents; // 保存关心的事件列表
    public abstract string Name { get; }
// 每个view的名字,把取得name的方法交给子类做
// 属性的方法抽象就不用实现,不然get方法必须要实现,返回一个名字
// Get {return name;}
    public abstract IList GetInterestedEvents(); 
// 方法:返回一个我关心的事件
    public abstract void HandleEvents(string eventName, object eventParam);
// 处理自己关心的事件,关心的事件名(攻击),事件的信息(攻击造成的伤害值)
}

MVCクラスに登録されたビューは、その後、データの変更、通知インタフェースの更新は、メッセージがMVCクラスを介して送信されますいつでも、興味のあるイベントです

ベースモデル:

/// <summary>
/// 数据模型,每个模型必须有一个名称
/// </summary>
public abstract class ModelBase {
    public abstract string Name { get; } 
// 背包数据有背包模型,副本数据有副本模型,这是他们的名字
}

おすすめ

転載: www.cnblogs.com/raymondking123/p/11355911.html