C#簡易入門3

C#簡易入門2のつづきです。メモ的なものです。Unityで簡単なスクリプトを作る為の準備運動程度です。プラグインの中身を理解できたら尚良しとする。
長文には折りたたみを使用しています。

C#簡易入門3 項目

プラグイン オリジナル タグをつくろう 公式 http://jokerscript.jp/adv/next/plugin
  1. プラグインの作り方を確認してみよう
  2. Unityで使う名前空間指定を確認しよう
  3. ジョーカースクリプトで使う名前空間を確認してみよう
  4. ジョーカースクリプトで使うクラス名を確認しよう
  5. ジョーカースクリプトのタグでつかう属性を付加しよう

<<C#簡易入門2に戻る
>>次からはC#簡易入門4にお願いします。
<<メニューに戻る

プラグインの作り方を確認してみよう


;2つのパラメータを受け取って、結合した値をvarで指定した変数へ格納する
[join var="f.test" arg1="これは" arg2="テストです" ]
{f.test}[p]
;これはテストですと表示される



using UnityEngine;
using System.Collections;
using System.Collections.Generic;

namespace Novel{

     public class JoinComponent:AbstractComponent
     {
      public JoinComponent ()
      {
  
       //必須項目
       this.arrayVitalParam = new List {
       "var","arg1","arg2"
       };

       this.originalParam = new Dictionary () {
       {"var",""},
       {"arg1",""},
       {"arg2",""},
      };

     }

      public override void start ()
      {

       string var_name = this.param ["var"];
       string arg1 = this.param ["arg1"];
       string arg2 = this.param ["arg2"];

       string arg_result = arg1 + arg2;

       //変数に結果を格納
       StatusManager.variable.set (var_name, arg_result);

       //次のシナリオに進む処理
       this.gameManager.nextOrder ();

      }

     }

}

Unityで使う名前空間指定を確認しよう


using UnityEngine;
using System.Collections;
using System.Collections.Generic;

Unityで使用するにあたって必要な名前空間指定です。Unity側でスクリプトファイルをcreateすると自動的に入力されると思います。

ジョーカースクリプトで使う名前空間を確認してみよう


namespace Novel{
 ここに決まったクラスを書く
}


ジョーカースクリプトで使うクラス名を確認しよう


 public class JoinComponent:AbstractComponent{

}

  • public class でクラスですよ~とお伝えしています。

■JoinComponent:AbstractComponent
【1】JoinComponent: クラス名は使用したいタグ名の頭が大文字+Component というクラス名をつけてください。[join]であるのでこの様に書きます。
【2】AbstractComponent  プラグインとして使用する場合は{ の前に必ず書きます。継承ですが、慣れるまでは、おまじないとでも思っておいてください。


【1】についてですが、
もしタグが[exit]であるのなら
ExitComponent  参考 引用元 http://q-fukutomo.hatenablog.jp/entry/2015/07/02/044257

もしタグが[quake]であるのなら
QuakeComponent 参考 引用元 http://q-fukutomo.hatenablog.jp/entry/2016/02/05/013315


となります。

プラス、その後ろに【2】の:AbstractComponentをつけてクラス名はできあがりです。


ジョーカースクリプトのタグでつかう属性を付加しよう

■属性とは
タグには属性(パラメータ―)がついているものがあります。
例 [stopbgm time=1] ですとtimeの部分が属性(パラメータ―)と呼ばれるものです。
もしも、属性が必要無い場合は、クラス名の中にUnityで決められている命令を書くだけとなります。
【exit】


;2つのパラメータを受け取って、結合した値をvarで指定した変数へ格納する
[join var="f.test" arg1="これは" arg2="テストです" ]
{f.test}[p]
;これはテストですと表示される



this.arrayVitalParam = new List {
       "var","arg1","arg2"
       };

       this.originalParam = new Dictionary () {
       {"var",""},
       {"arg1",""},
       {"arg2",""},
      };

属性(パラメータ―)の設定 

this.arrayVitalParam = new List {
       "var","arg1","arg2"
       };


【1】this.arrayVitalParam =new List と書く。
【2】new List {}の間に入力させたいパラメータ名を必ず書く


【2】で書くパラメータは
;2つのパラメータを受け取って、結合した値をvarで指定した変数へ格納する
[join var="f.test" arg1="これは" arg2="テストです" ]
{f.test}[p]
;これはテストですと表示される

でいうと
 var,  arg1     arg2 の三つです

なので

this.arrayVitalParam = new List {
       "var","arg1","arg2"
       };
と書きますね。
こちらを書くことにより、タグを使用した時にパラメータが存在しない場合エラーとして警告を出すことができます。
※ this.arrayVitalParam = new List<string> と書くと良い

originalParam というDictionary には パラメータ名とデフォルトで設定したい値を設定できます
これは、もしも指定したパラメータが指定されていない場合、標準で適応する値を設定することが可能です

    this.originalParam = new Dictionary () {
       {"var",""},
       {"arg1",""},
       {"arg2",""},
      };


※このように書くとよい
originalParam = new Dictionary<string,string> () {
                {"flag1",""},{"arg1",""},
    };

属性にデフォルト値を付加しよう

this.arrayVitalParam = new List {
       "var","arg1","arg2"
       };

       this.originalParam = new Dictionary () {
       {"var",""},
       {"arg1",""},
       {"arg2",""},
      };



public override void start ()
      {

       string var_name = this.param ["var"];
       string arg1 = this.param ["arg1"];
       string arg2 = this.param ["arg2"];

       string arg_result = arg1 + arg2;

       //変数に結果を格納
       StatusManager.variable.set (var_name, arg_result);

       //次のシナリオに進む処理
       this.gameManager.nextOrder ();

      }





  string var_name = this.param ["var"];
    string arg1 = this.param ["arg1"];
    string arg2 = this.param ["arg2"];

このように記述することで、タグで入力されたパラメータ値を取得することができます



その他 役立つこと

実際にスクリプトをひらいて見てみること
変数に結果を格納
    StatusManager.variable.set (var_name, arg_result);

    次のシナリオに進む処理
    this.gameManager.nextOrder ();

ターゲットにシナリオを進める方法
this.gameManager.startTag(JumpStr);

  • 最終更新:2016-02-11 17:37:28

このWIKIを編集するにはパスワード入力が必要です

認証パスワード