Unity備忘録6頁目「スクリプトを書いてみる2」

江上宿六です。

 

前回はスクリプトを記述し、Start関数やUpdate関数がどのような動きをするのか

確認しました。 今回はスクリプトでオブジェクトを操作してみたいと思います。

 

と、その前に前回し忘れていた注意です。 前回スクリプトにtestと名付けましたが

スクリプトの名前を変更したい時とかってありますよね。 しかしここで安易に

名前を変更してしまうとエラーを吐いてしまう事があるのです。

 

試しにtestをhelloworldに変えて実行してみましょう、正しく動きませんね。

多分スクリプトの名前とクラス宣言の名前が一致してないと駄目なんだと思います。

f:id:y6yegami:20180709164002p:plain

    ↓

f:id:y6yegami:20180709164007p:plain

 このようにこっちも変更を加えてあげると動きます。

 

では本題に入ります。

コンソールに文字が表示出来ましたが、だから何という感じもありますよね。

もちろんこういう処理や手順を知るのは大事な事だとは思いますが、ゲームを

今すぐにでも作りたいという人には退屈なものではなかろうかと思います。

なので早速動かしましょう、オブジェクトを。

 

新たにプロジェクトを作っても良いし、作らなくても良いですのでシーンに

Cubeを配置した状態にします。 そのCubeを選択しインスペクターの

Transform項目のPositionのXYZをそれぞれ0にします。 これで空間の中心に

Cubeが配置されました。

f:id:y6yegami:20180709184752p:plain f:id:y6yegami:20180709184757p:plain

次にスクリプトを作ります。 名前はCubeControllerとでもしておきます。

作成出来たらダブルクリックなりしてVisualStudio等のエディタを立ち上げ、

このようなコードを入力します。

f:id:y6yegami:20180709185551p:plain

まずクラスの中にfloat型のrotSpeedという変数を宣言しています。 これは

回転速度を保持するもので、宣言時は0を代入しています。 次にStart関数で

this.rotSpeed = 10としています。 thisというのはこのクラスのメンバ、つまり

今回はCubeControllerクラスのメンバを示すのに使われます。 ともかく

Start関数でこの回転速度を10と設定したわけです。

 

次はUpdate関数です。 transform.Rotateはオブジェクトを回転させるもので

括弧内は(x軸,y軸,z軸)という風になっています。 このz軸に先ほどの回転速度を

設定しています。 つまりフレームが呼ばれる度に10ずつz軸回転をする

という感じの中身になっているわけです。 保存してCubeにアタッチしたら

実行してみましょう。

f:id:y6yegami:20180710135723p:plain

カメラがデフォルトの状態ならこういう方向に回るようになったと思います。

このようにしてオブジェクトが操作出来るわけです。

 

今回はこれで終わりです。 オブジェクトを回してみただけですけども、

自分はこれだけでも結構楽しいです。 何か出来そうな可能性を感じたりですね。

f:id:y6yegami:20180710145641p:plain

ユニティちゃんを回転させてみたり。