Unity3D基础--动态创建和设置游戏对象

摘要:
cubeObject。添加组件;//添加脚本文件AutoDestroy4.动态销毁对象:destroy立即销毁游戏对象,destroy一秒钟后销毁游戏对象。5.动态销毁脚本:销毁销毁附着到cubeObject对象的脚。使用UnityEngine;使用系统。集合;//当游戏对象不可见时销毁publicclassAutoDestroy:MonoBehavior{voidOnBecameInvisible(){Destroy;}}7.复制物体:有时游戏中会多次使用相同的物体,例如大量的子弹。如果使用复制对象的方法,可以提高效率。调用GameObject的Instant方法返回一个Object对象进行强制转换以获得复制的对象。

转载自原文:http://m.blog.csdn.net/blog/smbroe/43488627

1.如何动态创建对象:调用GameObjectCreatePrimitive方法可以按模型进行创建,PrimitiveType中可选的模型有,Cube(立方体),Sphere(球体),Capsule(胶囊),Plane(平原),Cylinder(圆柱);创建出的对象不需要Add之类的就可以显示出来

GameObject cubeObject =GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cubeObject.transform.position = new Vector3(-2.0f, 0.5f, 4.0f);<span style="font-family:宋体;">//指定游戏对象的位置

2.动态添加组件:通过AddComponent<Rigidbody>();可以为一个GameObject对象添加一个刚体组件,其中Rigidbody表示刚体,我们可以通过更改这个类型来为其添加不同的组件。当我们添加刚体组件后可以获得GameObject的rigidbody对象并对刚体进行设置

cubeObject.AddComponent<Rigidbody>();//为游戏对象添加刚体组件
cubeObject.rigidbody.mass = 0.5f;//设置刚体密度,默认为1
cubeObject.rigidbody.AddForce(Vector3.forward *100);//为其施加向前的力

3.动态添加脚本:可以通过AddComponent方法并传入一个string类型对象(表示脚本的名称)来为GameObject对象动态添加脚本。

cubeObject.AddComponent("AutoDestory");//添加脚本文件AutoDestory

4.动态销毁对象:Destroy(cubeObject)是立即销毁游戏对象,Destroy(cubeObject,1)是延迟一秒销毁游戏对象

5.动态销毁脚本:Destroy(cubeObject.GetComponent(“AutoDestory))销毁cubeObject对象上附加的脚。

6.一般我们在游戏对象不可见时会销毁或停止其动作,在其被摄像同捕捉到可见时执行其动作,这样我们可以复写其中的OnBecameInvisible方法(当游戏对象不可见时被执行),OnBecameVisible方法(当游戏对象可见时被执行)来达到上述效果。

usingUnityEngine;
usingSystem.Collections;

//当游戏对象不可见时销毁
public classAutoDestory  :  MonoBehaviour
{
    
    voidOnBecameInvisible(){
        Destroy (this.gameObject);
    }
}

7.复制对象:在游戏中有时相同的对象会用到很多次,例如大量的子弹发射,如果利用复制对象的方法可以提高效率。调用GameObjectInstantiate方法返回一个Object对象进行强转可以得到复制的对象。

GameObject cubeClone = (GameObject) GameObject.Instantiate(cubeObject);

8.动态设置游戏对象的材质,为游戏对象添加贴图:我们可以通过cubeObject.renderer.material获得游戏对象的材质,并对其赋值即可,一般我们可以声明一个publicMaterial的成员变量,并赋给游戏对象,这样我们可以在Unity的编辑器中随时更改贴图。

usingUnityEngine;
usingSystem.Collections;

public classTest : MonoBehaviour {

    publicMaterial cubMeterial;

    //Use this for initialization
    voidStart () {
        GameObject cubeObject =GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cubeObject.transform.position = new Vector3(-2.0f, 0.5f, 4.0f);
        cubeObject.renderer.material =cubMeterial;

    }

}

免责声明:文章转载自《Unity3D基础--动态创建和设置游戏对象》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇11- APP性能测试GT工具的使用Linux下NFS配置及远程挂载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】linux 定时执行shell脚本

在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 利用crontab来定时执行任...

CetOS 服务不支持 chkconfig 的解决方法

  今天在添加Elasticsearch系统自动启动服务的时候,提示 “服务 elasticsearch 不支持 chkconfig ”,如下图:           后来查找了下原因,是脚本编写的不符合规范,缺少关键的前三两行;   那么前三行是什么作用呢?   示例,前三行如下: #!/bin/bash #chkconfig: 2345 80 90...

测试工具的选择和使用

Parasoft白盒测试工具集 工具名 支持语言环境 简介...

Jmeter 录制脚本【转】

Jmeter 录制脚本【转】 Jmeter中有2种方法可以录制脚本。  不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用。 像我这么精通HTTP协议的人。 一直都是使用Fiddler来抓包,然后自己写脚本。   无论如何,本文还是要介绍下两种录制脚本的方法 方法一:  使用badboy来录制脚本 badboy本身是一个针对Web的测试工...

highcharts(数据可视化框架),ajax传递数据问题

1.引入 Highcharts 注意用什么功能就按照官方引用对应的js <%--highcharts视图js--%> <script src="/js/Highcharts/code/highcharts.js"></script> <script src="/js/Highcharts/code/...

[转]Linux中如何自动启动服务

linux自动启动服务很简单,最简单的是把启动命令放到/etc/rc.d/rc.local文件里。这样就可以每次启动的时候自动启动服务了。例如对于 apache,编译好apache后会在安装目录的bin下生成apachectl文件,这是个启动脚本,我们只需要把这个命令加到rc.local里就可以了:echo /usr/local/apache/bin/ap...