Unity3D学习记录——API实例化与销毁4

1.这是利用Instantiate实例化生成一堵墙

2.生成墙这个地方需要注意是预制体的使用,不要直接添加脚本到预制体,而是重新创建空物体,添加脚本,并在public那一栏添加预制体,否则会一直生成Cube直至卡死


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreateWall : MonoBehaviour {

    public GameObject m_cube; //创建游戏物体m_cube对象
    private Transform m_transform; //创建位置组件m_transform对象

	// Use this for initialization
	void Start () {
        m_transform = gameObject.GetComponent<Transform>(); //获取游戏物体位置组件赋值给m_transform
        CreatWall(); //调用自定义函数CreateWall,函数作用是创建一堵墙
	}
	
	// Update is called once per frame
	void Update () {
   
    }

    private void CreatWall() { //自定义创建墙函数,创建5行7列Cube堆的墙
        for(int i=0;i<5;i++){ //从第一行开始堆,堆到七个后,跳出内循环,继续在第二行堆
            for(int j=-3;j<=3;j++){ //从中心位置开始从负方向到正方向堆
                Vector3 pos = new Vector3(j, i+0.5f, 0); //定义三维向量对象pos,用来重新定位位置,y轴方向位置要提高0.5,不然Cube一半在地板下
		        GameObject game_obj = Instantiate(m_cube,pos,Quaternion.identity); //在重定位后的位置无旋转实例化m_cube,并赋给game_obj对象
                game_obj.GetComponent<MeshRenderer>().material.color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f)); //给game_obj上随机颜色
            }
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值