【Unity】ScratchのブロックをUnityで再現しよう~動き②~

15度回す ScratchからUnityへ
15度回す

Scratch のブロックを Unity で再現するときに、どのような方法があるのかを紹介していきます。

ScratchのブロックをUnityで再現しよう

15度回す

Scratch の「15度回す」ブロックを Unity で作ってみましょう。

15度回す
15度回す

準備

「動き①」と同様に三角形を配置してMoveTriangleスクリプトを用意します。

三角形が下に落ちないようにする

Rigidbody2Dコンポーネントで重力の影響を受けるようになっていますので、三角形が下に落ちていきます。
今回は、重力の影響を受けないようにしましょう。
Rigidbody2D にある Gravity Scale を 0 に変更します。

Gravity Scale を 0 にする
Gravity Scale を 0 にする

15度回すプログラムを書く

それでは、さきほどの MoveTriangleコンポーネントに C#プログラムを記述して、15度回してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveTriangle : MonoBehaviour {
    Rigidbody2D m_rRigidbody2D = null;

    void Start() {
        m_rRigidbody2D = GetComponent<Rigidbody2D>();
    }

    void FixedUpdate() {
        if (m_rRigidbody2D != null) {
            m_rRigidbody2D.MoveRotation(m_rRigidbody2D.rotation + 15f * Time.fixedDeltaTime);
        }
    }
}

動かしてみる

最初はプログラムの意味が分からなくても大丈夫です。
とりあえず、動かしてみましょう。
保存しないと反映されないので、プログラムを編集したら忘れずに保存しましょう。
Unity 上部の真ん中にある再生ボタンを押すと動き出します。

再生ボタン
再生ボタン

プログラムのちょこっと解説

今回は「15度回す」ために、MoveRotation という名前のメソッドを使いました。
Rigidbody2D のドキュメントに使い方が載っています。
引数で渡している15のところの数字を変えると、回る速さが変わります。

Rigidbody2D-MoveRotation - Unity スクリプトリファレンス
Rotates the Rigidbody to angle (given in degrees).

まとめ

Scratch の「15度回す」ブロックと同じ動きを Unityで作ってみました。
Triangle(ゲームオブジェクト)に Rigidbody2Dコンポーネントを追加して、ゲームオブジェクトを動かす機能を付けました。
MoveTriangleコンポーネントを新しく作成し、15度回すプログラムを追加してみました。

Unity が提供しているコンポーネントの機能を覚えて、C#プログラムで動かせるようになると、いろいろなゲームなどを作れるようになります。

コメント

タイトルとURLをコピーしました