Scratch のブロックを Unity で再現するときに、どのような方法があるのかを紹介していきます。
ScratchのブロックをUnityで再現しよう
15度回す
Scratch の「15度回す」ブロックを Unity で作ってみましょう。
準備
「動き①」と同様に三角形を配置してMoveTriangleスクリプトを用意します。
三角形が下に落ちないようにする
Rigidbody2Dコンポーネントで重力の影響を受けるようになっていますので、三角形が下に落ちていきます。
今回は、重力の影響を受けないようにしましょう。
Rigidbody2D にある 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#プログラムで動かせるようになると、いろいろなゲームなどを作れるようになります。
コメント