Example #1
0
 /// <summary>
 /// ActorConfig から Actor を生成します。
 /// </summary>
 /// <param name="config">ActorConfig。</param>
 /// <returns>生成された Actor。</returns>
 /// <remarks>
 /// このメソッドでは Actor のインスタンス生成のみを担い、
 /// プロパティの設定やコンテンツのロードは行いません。
 /// </remarks>
 protected abstract Actor CreateActorInstance(ActorConfig config);
Example #2
0
 /// <summary>
 /// 生成された Actor を ActorConfig の設定に従って初期化します。
 /// </summary>
 /// <param name="config">ActorConfig。</param>
 /// <param name="instance">Actor。</param>
 /// <remarks>
 /// このメソッドでは Actor へのプロパティの設定のみを担い、
 /// コンテンのロードは行いません。
 /// </remarks>
 protected virtual void InitializeActorProperties(Actor instance, ActorConfig config)
 {
     instance.Name = config.Name;
     instance.Position = config.Position;
     Matrix.CreateFromYawPitchRoll(
         config.Orientation.Y,
         config.Orientation.X,
         config.Orientation.Z,
         out instance.Orientation);
     Matrix.CreateScale(ref config.Scale, out instance.Scale);
     instance.Enabled = config.Enabled;
     instance.Visible = config.Visible;
 }
Example #3
0
 /// <summary>
 /// ActorConfig から Actor を生成します。
 /// </summary>
 /// <param name="config">ActorConfig。</param>
 /// <returns>生成された Actor。</returns>
 /// <remarks>
 /// このメソッドは、以下の順序でメソッドを呼び出して Actor を生成します。
 /// 
 /// 1. CreateActorInstance
 /// 2. InitializeActorProperties
 /// 
 /// </remarks>
 public virtual Actor CreateActor(ActorConfig config)
 {
     var instance = CreateActorInstance(config);
     InitializeActorProperties(instance, config);
     return instance;
 }