LoginSignup
0
0

More than 3 years have passed since last update.

オブジェクトを複製しよう(Prehub)

Posted at

前置き

C#なら一度書けば覚えるのに、Unity関係の機能は何度やっても覚えられない……。(-_-)zzz
ゲームのステージ作るのにPrehub使いたいのになあ。( ;∀;)
このブログは何のためにあるのか、それは覚えるのが面倒なもののメモのためだー!(定期)

ここから本編スクリーンショット (226).png

3分Prehubクッキング
1分目 

Prehubにしたいオブジェクトを作りましょう。

2分目 
PrehubにしたいオブジェクトをAsset内にドラック&ドロップしましょう。

3分目 
Prehubにしたいオブジェクトが青くなったのを確認して、お茶を飲みましょう。


大量生産!大量消費!

prehub.cs
using UnityEngine;
//最初にステージを生成する
public class stagecreate : MonoBehaviour
{
    //スクリプトにPrehubをアタッチする
    public GameObject fields;

    void Start()
    {
        //Prehubを作成
        GameObject field = Instantiate(fields) as GameObject;
        //ここで位置情報を入力したり、名前を変えたり、後はお好みで。
    }
}

Instantiate関数ってのを使います。Prehubを生成する関数という認識で大丈夫!('ω')

destroy.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Control : MonoBehaviour
{
    void Update()
    {
        //一定範囲内にいないとこのオブジェクトを破壊する
        if(this.transform.position.x > 50)
        {
            Destroy(this.gameObject);
        }
    }
    //何かに当たったら反応
    void OnTriggerStay(Collider other)
    {
        //当たったものが"weapon"だったらこのオブジェクトを破壊
        if (other.gameObject.name == "weapon")
        {
            Destroy(this.gameObject);
        }
    }
}

参考までに作ったPrehubを破壊するオブジェクト。(Prehubである必要は特にない)
Prehubに直接このスクリプトをアタッチすれば動いてくれる。('ω')ノ
たくさんPrehubを破壊する場合はプールという機能を使えばいいらしいけど、勉強不足なので、勉強後にそれについてもメモ書いとこうかなあ(計画倒れになるやつ)

Instantiate関数についてはこれが詳しく書いてくれてます。(*^^)v

オブジェクト生成の仕方 Instantiate
https://qiita.com/Teach/items/c28b4fe5ca8dc4c83e26#prefab%E3%81%AEtransform%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A7%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0