Unity オブジェクトを上方向に飛ばしてスピードも変えてみよう! Unity学習③。
今回はオブジェクトを上方向に飛ばしてInspectorから
スピードを変更できる様にしていきます。
※動画での説明の方が分かりやすい方は下記動画を参考にしてください。ブログ記事での説明が好みの方はそのまま読み進めていってください。
youtu.be
今日もこんばんは!
ゆうきやんです。
今日は家の電気が勝手に豆電球になって
困りました。
ただ豆電球以外の蛍光灯が寿命だっただけで
交換してやっと直りました泣
人生お先真っ暗になるところでした。
見てくれてありがとうございます。
オブジェクトを上方向に飛ばしてスピードも変えてみよう!
まずUnityを3Dで開いていきます。
Hierarchy内の⇨+⇨3DGameObject⇨Sphereでオブジェクトの生成と
Plene(地面)を作成してください。
以降色々記述しますが『何のこと?』など
もし分かりづらかったら下記記事を参考にしてください。
地面より玉が上に来るように移動させてください。
色は分かりやすいように、Directional Lightから変更しています。
Materialを作成して色も変えることも出来ます。
次に、HierarchyにあるSphereを選択してInspectorを一番下まで
スクロールしてAdd Componentを選択。
検索窓にRigidbodyと入力して下記に記載されている
igidbodyをクリックして追加してください。
こんな感じです。
次にオブジェクトを飛ばすスクリプトを
作っていきます。
Project内の自分の分かりやすい所で右クリック⇨Create⇨C# Scriptからスクリプトを作成して
名前をMoveにしてください。
次のコードをコピー&ペーストするか同じ記述にしてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { //Rigidbody型を変数rigidで宣言します。 private Rigidbody rigid; //Vector3型を変数posで宣言します。 private Vector3 pos; //float型を変数speedで宣言して最初の値は0,01とします。 public float speed = 0.01f; void Start() { //GetComponentでRigidbodyを取得して変数rigidで参照します。 rigid = GetComponent<Rigidbody>(); //変数posで位置情報を取得します。 pos = transform.position; } private void FixedUpdate() { //Y座標はspeedの値を足された位置に。 pos.y = pos.y + speed; //変数rigidの動く座標位置の取得。 rigid.MovePosition(new Vector3(pos.x, pos.y, pos.z)); } }
出来上がった①のスクリプトを、
Hierarchy内にある②のSphereにドラッグ&ドロップしてアタッチしてください。
そうすると③の様にInspector内に追加されているはずです。
Speedの数値を大きくすればするほど上方向に動くスピードが
速くなっていくので是非変えてみてください。
それでは再生してみましょう!
何だか、風船が上がっていく感じですね。笑笑
ゲームで使うなら回復薬なんか使ってキラキラ光ながら上に消えるとか
パーティクルにもコードを少し変えれば魔法にも使える感じですね!
ご視聴ありがとうございました!
関連記事
※Unityの学習をしていきたい方は下記カテゴリを覗いてみてください。www.unityprogram.info
※初心者に向けた基本的な記事は下記カテゴリを参考にしてください。
www.unityprogram.info
※オススメの無料アセットなど便利なアセットの紹介は下記カテゴリを見てください。
www.unityprogram.info
※本格的な3Dゲームを作っていきたい方は下記カテゴリからレッツゴー!
www.unityprogram.info
※実際に使ってみたオススメの学習本は下記カテゴリからご参考ください。
www.unityprogram.info