Unity クリックした場所にオブジェクトを複製して、設定時間で消す方法 Unity学習14
今回はクリックした場所にオブジェクトを出現させて、スクリプトから
Inspector内で設定時間を自分で決めて消える方法です
※動画での説明が好みの方は下記動画をご覧ください。記事での説明がいい方はそのまま読み進めてください。
youtu.be
どうもゆうきやんです!
そろそろ寒い時期が終わって
タンクトップの季節がやってきましたね!(3月)
それは冗談ですが、生温い風がふく
ちょうど良い感じの季節が
やっぱり好きですね。
さて!本題に入っていきましょう!
クリックして複製した後に設定した時間で消す方法
今回はマウスの左クリックで球を複製して、消えないと
埋まってしまうので何秒経過したら消えるスクリプトを
作っていきます。
始めにプロジェクトを3Dで開いてください。
まず①のHierarchyの+をクリックします。
3D Object⇨Sphereを作成します。Sphereを
ドラッグしてProject内の②Assetsにドロップしてプレハブを作ります。
そうしたらHierarchy内にあるSphereを右クリックを押してDeleteしてください。
※GameObjectの作成、プレハブ化が分かりづらかったら
下記記事を参考にしてください。
phoenix9056.hatenablog.com
次に③の空のGameObjectをHierarchy⇨+⇨Create Emptyをクリックして作成してください。
最後にProjectのAssets内で右クリックを押してC#スクリプトをClickSphereで作成してください。
そうしたら、下記記事をコピー&ペーストするか同じ様にコードを書いていってください。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClickSphere : MonoBehaviour { //GameObject型の変数prefabを宣言します。 public GameObject prefab; //froat型の変数timerを宣言します。 public float timer; //GameObject型の変数objを宣言します。 public GameObject obj; //Vector3型の変数mousePositionを宣言します。 private Vector3 mousePosition; // Update is called once per frame void Update() { //もしマウスの左クリックが押されたら以下を実行します。 if (Input.GetMouseButtonUp(0)) { //変数mousePositionにクリックされた場所の座標を格納します。 mousePosition = Input.mousePosition; //z軸は奥行きを表します。値を小さくするほど手前にprefabが表示され、 //値を大きくすると奥に表示されます。 mousePosition.z = 5f; //1個以上objが出現したら、決めた時間に消します。 Destroy(obj, timer); //Instantiateでprefabを複製して、ScreenToWorldPointでスクリーン座標を //ワールド座標に変更します。コレでSphereがクリックした時に表示されます。 obj = Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition), prefab.transform.rotation); } } }
保存をしてUnity内に反映させてください。
※もしスクリプトの作成の仕方が分からなかったり
Unityにスクリプトが反映されない!って方は下記記事を参考にしてください。
phoenix9056.hatenablog.com
ProjectのAssets内にある、先程作成したスクリプトをドラッグして、
Hierarchy内にある②の空のGameObjectにドロップします(アタッチ)。
GameObjectをクリックして、
ProjectのAssets内にある③のプレハブ化したSphereを
Inspector内にある④のprefabの所にドラッグ&ドロップして追加して、
Timarの部分は自分が何秒で消したいのか数字を入力してください。
コレで完成です!
下記gif画像の様に消えていったら成功です。やっったね!!!!
僕が気になったのは一つの知恵として覚えるのは
いいのだけど一つだけだと消えないのが嫌でした笑笑
色々検索したり本読み漁ったのですが泣
まだまだ知らない事ばかりなのでもっと勉強して
みなさんに伝えていきますね!!
次回からは、ゲームで実際に主に3Dシューティング、よくあるFPS、ゴールデンアイ的なやつにも
使える記事を書いていきたいと思います。
今日の覚えて頂きたいのは、クリックでプレハブの複製とDestroy関数を使った
Gameobject(clone)の削除方法でした。
ご視聴ありがとうございます!
※Unity学習を続ける方は下記カテゴリを参照してください。
phoenix9056.hatenablog.com
※初心者の方、基礎は下記記事より。
phoenix9056.hatenablog.com
※オススメアセットの紹介は下記カテゴリより。
phoenix9056.hatenablog.com