三流作家の雑記帳

三流作家、葉山洋三が日々感じたことを記すブログ

1日15分でマスターするUnityトレーニング:第18回(別オブジェクトを制御)

今までは動かすキャラクターにスクリプトを割り当てて、任意の動作を割り当ててきました。
プレイヤーや敵と区別が付いている場合はそれでもいいのですが、やりたいことが複雑になってくると、同じスクリプトで他のオブジェクトを操作したくなるケースも出てきます。

まだ、テクスチャを貼っていない状態ですが、砲台を作ってみました。
モデリングではなく、動きに注目して下さいw
unity18-1.gif

基本的に、やっていることはキャラクターの回転と変わりません。
ただ、砲台と台座が別オブジェクトになっています。

勿論、それぞれのオブジェクトにスクリプトを割り当てても同じことはやれますが、後々に不具合が発生した場合、そうした書き方だと、原因を突き止めるのが大変になってしまいます。
では、どうするのがいいか。1例ですが、やり方をご紹介しましょう。

まず、砲台はこんな感じです。
これを見ると、全体は横回転、houdaiだけを縦に回転させれば、冒頭の動きが出来るのは予測出来ますね。
Unity18-2.png

いきなり答えを書きますw
-------------------------------------------------------------------------

float rotateSpeed = 1F;
CharacterController character;

float y_angle;

// Use this for initialization
void Start () {
character = GetComponent();
GameObject houdai = GameObject.Find("houdai");
}

// Update is called once per frame
void Update () {
float v = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");

houdai.transform.Rotate(0, v * rotateSpeed, 0 );
transform.Rotate(0, h * rotateSpeed, 0);

       }
}
-------------------------------------------------------------------------



重要なのは下記の文。
GameObject houdai(好きな名前) = GameObject.Find("houdai(動かしたいオブジェクト名)");
これはhoudaiという名前にhoudaiオブジェクトを割り当てています。
float rotateSpeed = 1F;と同じ箇所に書くと、何故かエラーになってしまうので、start内に書きましょう。
(追記:Update内の方がいいかもしれません)

で、それを回転させる場合は、houdai.transform.Rotate(0, v * rotateSpeed, 0 );
と、頭に宣言した名前を付けます。

今見たら、両方ともy座標を変化させていますね。
何でこれで狙った通りに回転するのか、私もこの記事を書きながら「あれっ?」と思っています。
WSキーとADキーの差でしょうか? 
まあ、上手く行っているので深く考えないことにしましょう!

恐らく頻繁に使う機能だと思うので、色々試して覚えてしまいましょうね。
  1. 2014/04/26(土) 09:47:03|
  2. Unity
  3. | トラックバック:0
  4. | コメント:0
<<2段階へ! | ホーム | 初めての鉄砲一斉検査>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://8ayama.blog.fc2.com/tb.php/440-99158f02
この記事にトラックバックする(FC2ブログユーザー)

小説試し読み

販売している小説の冒頭部分です。PDFが開きます。

アルとフィルの大冒険 ~魔法の迷宮~
天賦の才

ご購入はこちらからどうぞ

アルとフィルの大冒険 ~魔法の迷宮~
天賦の才

Blender講座

選択すると、その記事へジャンプ出来ます。

Unity講座

最新記事

広告







月別アーカイブ

カテゴリ

未分類 (0)
雑記 (192)
小説 (29)
時事 (57)
ゲーム (76)
Blender (92)
競馬 (74)
映画 (35)
車/バイク (303)
狩猟/射撃 (96)
Unity (73)

検索フォーム

リンク

このブログをリンクに追加する