見出し画像

UnityでのLogicの使い方

Unityのチュートリアルで気になった事。
 clusterでUnityを使ってワールドを作成する上で初心者の私が気になった事案を書き記します。
各種コンポーネントの使い方は、YouTubeやWebの記事で調べることは、できますが少し複雑なコンポーネントの使い方は、少ないように感じました。
説明のサイトがあっても初心者が理解できる解説が少ないように感じました。(心の声「おめーがアホだからだろ」)

そこで私が気になった事案を幾つか記載しようと思います。
今難解だと思う事柄。

①Logicの使い方説明。
②Animatorの使い方。
上記2点の基本的な説明を書き記したいと思います。
今回の記事は、Logicの使い方のみです。
※自分自身の備忘録です。まあ自分で理解した事を書きますがなにせ初心者ですので違っているかもしれませんがご容赦くださいませ。

Logicの使い方

Logicは、条件分岐や変数の格納に使います。
変数にあたるキーには、任意の文字が使えます。(おすきにどーぞ)
 キーのサンプル:pantumarumie
そのキーに格納できる内容は、
Signal :瞬間的な信号
Bool  :真偽とかOn、OFFとかの格納でBoolの脇に▢があります。そこにチェックを入れると真とかOnとかになります。
Float  :小数点を含む数値になりますがほとんど使うことは、ありません。
Integer :整数を格納します。
文字の格納は、無いんですね(;^_^A

Logicの種類
GlobalとItemとPlayerの3つになります。
Global  :その名のとおりワールド全体でキーを受け付けたり発信できます。
Item  :オブジェクトに適用します。オブジェクト内で使用する命令の時に使います。
Player  :まあ、説明するまでもないのですが入室してきたプレイヤーさんにキーの内容を伝えます。

それぞれのロジックに命令を与える演算子と関数があります。
※ここいら辺が一番難しいのかもしれませんね。(;^_^A
演算子と関数なんて聞いただけで拒否しちゃいますよね。
まあ、実際このへんを丁寧に説明しているサイトは見当たりませんでした。
正直こんな事してまでワールド作りたいとか思う人が少ないのかもしれませんね。
たしかに理解するのに少し大変でした。
でも覚えるととっても便利なんですよ。

では、具体的に説明して行きましょう。

ItemLogic

上記は、Itemでの命令を受ける場合の例になります。
①は、命令を受け取る場所になります。
 トリガーは、ThisかGlobalが使えます。Thisは、自分自身です。
もちろんGlobalは、ワールド全体になります。例えばAと言うキーから信号受け取る場合Globalで送られてきた信号は、Thisでは、受け取れません。
Globalで送られた信号を受け取るには、Globalにしなければ受け取れません。
下の②と③は、送られてきたシグナルで発動する命令です。
今回は、サンプルとして②と③の二つ書きましたが1つ以上ならいくつでも書けます。
②の説明をします。
この最初のThisは、信号を格納する場所を示しています。
この場合「timerSW」と言うキーには、下記の条件によりシグナルを送るという意味です。
=Equalsは、等しければ、と言う意味です。(何が?)
その下に書かれた2行が比較のための関数です。
RoomStaetは、書かれている命令を格納しているRoomから読んでこいって意味。脇にBoolって書かれているのは、真偽の信号って意味その脇がThisなのでここって意味。SwitchFlagに真偽のスイッチが格納されている。
下のConstantってのは、定数って意味で「決まってるっしょ、そんなの」って意味で脇にやっぱりBoolって書かれているのは真偽って事で大事なのは、その脇の▢。
▢の中に☑が入っていないので”偽”って意味になる。
わかるかね?なんか意味わかんねーよね。
要は、SwitchFlagに偽が格納されていればtimerSWにシグナルを送れって意味です。
わかります?
何だか難しいかね?
③は、単純です。
=だけしか書かれていないのは、上の=Equalsとまったく違って何にも考えずに実行しなさいって意味です。
この場合SwitchFlagに☑(真)を入れよってことです。

やっていることは、Switchって名前の変数にシグナルが送られてきたらSwitchFlagを確認して中身が偽だったらtimerSWにシグナルを送れ。
そしてついでにSwitchFlagに真を入れなさい。
と言う意味でーす。((´∀`))
なぜこんなことするかって?
スイッチ押されたらタイマーのスイッチを押してね。そんで連続で押されてもタイマーが押されないようにフラッグ立ててねって意味です。
ちなみに初期は、Boolには、何も入っていない(空っぽ)ので偽になります。もちろん処理が終わったらSwitchFlagに偽を入れます。

何だかとっつきにくいよね。
「あんまり難しい事したくねーし」と思うこのごろでした。
アーメン

次回は、アニメーションの事を書く予定ですが疲れた。