2017年3月13日月曜日

MachineCraftスクリプト機能(C#)の基本(その3):AutoPilotについて

前回(http://henjin0antiforget.blogspot.jp/2017/03/machinecraftc.html)トピック
では、プログラムをモデルに組み込むフローについて述べた。
今回は、予定通りapオブジェクト(AutoPilotクラス)について述べていく。

ただし、今回話すトピックはクラスやオブジェクトなどについての説明ではない。
C#の文法を知るのであれば、SYODA Tuyano氏のこのサイトなどを参考にして
もらいたい。Unity 3Dに関するトピックもあるため、参考になると思う。

[初心者のためのC#プログラミング]

"http://libro.tuyano.com/index2?id=1204003"

前回のプログラムには
といったように、OnStart関数とOnUpdate関数への引数となっていた。
このapオブジェクトを使うことで、前回の文字列表示ができた。

このapオブジェクトの設計図にあたるAutoPilotクラスには、前回トピックの
Log関数やPrint関数が定義されており、MachineCraft本体との情報の
やり取りを簡便化させる役割を担っている。

ただ、AutoPilotクラスを使う上では、MachineCraft上のパラメータが必要になる。
それ故に、継承元(UserScript)で決め打ちになっているOnStart関数とOnUpdate関数
で初期化が逐次行われているのだと筆者は考える。
初期化に必要なパラメータが分からなくてもいいのは、正直ありがたい。

AutoPilotクラスで定義されている関数は、_scriptフォルダの"Luaスクリプト解説.txt"
と"C#スクリプト解説.txt"に書いてある。重要なのが、書いているプログラムが
C#スクリプトでも"Luaスクリプト解説.txt"の関数群が全て使えるということ。
ただし、関数を使うときにはC#の文法に則ってap.func()にする。

以上がapオブジェクト(AutoPilotクラス)についての説明だ。
次回は、モデルの状況をスクリプトへ反映させてみようと思う。

それにしても、継承元のUserScriptクラスはどこにあるんだろう?
ブラックボックス化されるべきスクリプトだというのは承知だけれども...

0 件のコメント:

コメントを投稿