Unity ボールを重力で簡単に転がして操作してみよう! 初心者編23
今回は、ボール(Sphere)自体に操作スクリプトをつけるのではなく、
全体的にRigidbodyコンポーネントがついたオブジェクトを全て動かす方法です。
例えて言うと木の板に物を乗せて傾けて動かすイメージです。
※動画での説明がいい方は下記動画をご覧ください。記事での説明がいい方はそのまま読み進めてください。
ボールを重力で簡単に転がして操作してみよう!
3Dでプロジェクトを開いてください。
まずHierarchy内にある①+⇨3D Object⇨SphereをクリックしてSphereの作成と、
同じ手順で+⇨Create Empty⇨GameObjectを作成して名前をInspectorから
SphereMoveに変更して②のようにしてください。
SphereをクリックしてInspector内の一番下にあるAdd Componentをクリックして、
Rigidbodyを検索して追加してください。
Sphereに色が付いてますが、色をつけたい方は
projectのAsset内で右クリック⇨Create⇨Materialをクリックして
MaterialのInspector内のAlbedoのカラーを好きな色に変更をして、
Sphereにドラッグ&ドロップして色をつけてください。
今度は重力で操作できるスクリプトを作成していきます。
Project⇨Asset内で右クリック⇨Create⇨C# Scriptを選択して
名前をSphereMoveにして④のスクリプトを作ってください。
次のコードをコピー&ペーストするか同じ記述にしてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SphereMove : MonoBehaviour { //重力の加速度の値 const float Gravity = 9.8f; //重力がどの程度適用されるか public float scale = 1.0f; void Update() { //重力のベクトルを初期化します。 Vector3 vector = new Vector3(); //カーソルキーの入力を検知して位置を設定 vector.x = Input.GetAxis("Horizontal"); vector.z = Input.GetAxis("Vertical"); //高さ方向の判定はキーのzとします。 if (Input.GetKey("z")) { //高さ方向の入力を取得 vector.y = 1.0f; } else { vector.y = -1.0f; } //重力を入力方向に合わせて変化させる。 Physics.gravity = Gravity * vector.normalized * scale; } }
出来上がった④のスクリプトをHierarchy内にある
SphereMoveにドラッグ&ドロップしてアタッチしてください。
最後に①SphereMoveのInspector内にある
②のスクリプトのScaleの値を3のに変更しましょう。
数字を大きくすればするほど重力が加算されて早く動くようになります。
それでは再生してみましょう!
見事に落ちました!笑笑
別のオブジェクトを作成してRigidbodyを追加すれば
同時に動かすことができるので是非試してください。
ご視聴頂きありがとうございます。
今日のゆうきさんのゲーム実況!
恐怖の英語ゾンビタイピングゲーム
youtu.be関連記事
※初心者に向けた基本的な内容の記事は下記カテゴリを参考にしてください。
www.unityprogram.info
※オススメのアセットの紹介は下記カテゴリより。便利なアセットがあります。
www.unityprogram.info
※実際に使ってみたオススメの学習本は下記カテゴリから覗いてみてください。
www.unityprogram.info
※Unityでの学習をしていきたい方は下記カテゴリを参照してください。少し込み入った内容になっています。
www.unityprogram.info
※本格的に3Dゲームを作っていきたい方は下記カテゴリより。
www.unityprogram.info