今日は,長々考えていた一定時間で自動生成する方法ができたので,メモしておきます!!
まぁ今考えるとめちゃ簡単なんですが・・・
成果はこんな感じです!!
こんな感じで
親オブジェクト→太陽
子オブジェクト→火の玉?
になっています
こんな感じです
今回やりたかったことは,
- 上から一定の時間の間隔で,オブジェクトが自動で生成される.
- 画面いっぱいにならないように一定時間後に,削除する.
(本来は,横から玉が出てきてマリオのキラーみたいな感じにしたかったのですが...)
こちらがコードになります
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class fireball : MonoBehaviour
{
public GameObject PrefabsBall;//プレハブをセットする
GameObject Obj;
GameObject ball;//親オブジェクトの設定
private Vector3 Position;
// Start is called before the first frame update
void Start()
{
// ヒエラルキーからfireballを探す
ball = GameObject.Find("sun");
InvokeRepeating("CreateBall",10f,0.5f);
}
// Update is called once per frame
void Update(){
// Object reference not set to an instance of an objectのエラーが起きた
}
void CreateBall(){
Position = new Vector3(Random.Range(19.27f,36.66f),2f,0.0f);
Obj = (GameObject)Instantiate (PrefabsBall,Position, Quaternion.identity);
// Debug.Log("fireballができた");
Destroy(Obj,3f);
}
}
これを親オブジェクトの太陽にアタッチします.
一応,コードの説明を
InvokeRepeating(関数名,呼び出されてからどのくらい待ってから始まるか,感覚の時間)
で,繰り返し生成しています.
コルーチンというのもあるらしいのですが,ちょっとよくわからなかったので今後使ってみたいと思います!!こっちだったら個数などの制限をかけたりできるそうです
あとは,普通にInstantiateでプレハブから生成していきます.
ここで親オブジェクトの下に作るには,
Obj.transform.parent = ball.transform;
のところを入れるとできるようになります!!
これで一応ゲームの完成したのであとは微調整をしていくのみですね!!
あ,ジャンプ音をつけないと.....
freemさん,UnityRoomにゲームを公開しました!
クリアできるようになったのでよろしくお願いします〜〜
よろしくお願いします ~~