WEBOPIXEL

3Dゲームが簡単に作れるUnityちょっとやってみた[2]

Posted: 2013.07.26 / Category: Unity 

前回に続きましてUnityです。
前回は3Dソフト的な機能紹介だけで終わってしまったのですが、今回はマウスを使用したインタラクティブな要素を試してみます。

Sponsored Link

環境
Windows 8
Unity 4.1.5

スクリプトファイルを作成する

前回は「Boll」が落下すると「Floor」に当たりバウンドするという動きを作りました。
今回は「Boll」をクリックするとイベントが発生して、アニメーションを変化させるということをしてみます。

ProjectビューのAsettsで右クリックして「Create」->「C# Script」を選択します。
作成したC#ファイルは「Boll」という名称にします。

C# Script」の作成

Unityで使用できるプログラム言語

Unityでは「Javascript」「C# Script」「Boo Script」という3つのプログラムが使えます。
多く使われているのは「C# Script」です。「Boo Script」はあまり聞きなれませんが「Python」に似ているらしいです。
「Javascript」は誤植じゃねーのって感じがしますが、Webブラウザで使用する「JaveScript」とはちょっと仕様が違うみたいです。なのでわざと表記を変えてるのかもしれません。

Mono Developのカスタマイズ

作成した「Boll」スクリプトをダブルクリックすると「Mono Develop」が起動します。
Unityのスクリプトはこの「Mono Develop」で編集します。(他のエディターを使用しても大丈夫です)

そのまま使うにはちょっとあれな面もありますので、ちょっと見た目をカスタマイズしましょう。
フォントサイズは「Tools」->「Options」->「Fonts」で変更します。
シンタックスカラーは同じ「Options」の中の「Syntax highlighting」で変更できます。
標準以外にも有志の方がファイルを配布されてたりしますので探してみてください。

Mono Developのカラーリング

MonoDevelop-Styles

ダウンロードしたファイルは下記に配置します。

C:\Users\[ユーザー名]\AppData\Roaming\MonoDevelop-Unity-2.8\HighlightingSchemes

日本語の記述があるファイルを保存するとき

Unityで作成したファイルをそのまま保存すると、コメントなど日本語で入力した場合はエラーになってしまいます。
その場合は「File」->「Save As…」で「Character Coding」を「ISO-8859-15」にしましょう。

スクリプトファイルを編集する

作成した「Boll」スクリプトファイルは下記のようになっています。

Boll.cs

    using UnityEngine;
    using System.Collections;

    public class Boll : MonoBehaviour {

        // Use this for initialization
        void Start () {

        }

        // Update is called once per frame
        void Update () {

        }
    }
    

「Start」と「Update」メソッドがオーバーライドしてあります。

Start スクリプト実行時に一度実行されるメソッドです。初期化などをここに書きます。
Update 毎フレーム実行されるメソッドです。アニメーションなどはここに書きます。

2つのメソッドを紹介したところではありますが、マウスのイベントを取得するには「OnMouseDown」を追加します。

Boll.cs

    void OnMouseDown () {
        rigidbody.velocity = new Vector3(0, 5, 0);
    }
    

プログラムの動きを確認する

Unityに画面に戻りPrijectビューの「Boll」スクリプトをHierarchyビューの「Boll」までドラッグします。

プログラムが動くか再生ボタンを押して確認してみましょう。
Gameビューでボールをクリックすると、ちょっとだけボールが上昇するようになりましたね。

完成イメージ

というわけで本当にさわりの部分でしたが、全2回のUnity投稿でした。
3Dソフトの延長線上でゲームが作れるので、とっかかりとしてはかなり入りやすいのではないかなと思います。
といっても、ちゃんとしたキャラクターを表示して動きをさせようと思うと色々と複雑なことをしないといけないみたいですね。
また機会があったら書いて行きたいと思います。

LEAVE A REPLY

コードを書く場合は<pre>で囲んでください。