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

1.如何动态创建对象:调用GameObject的CreatePrimitive方法可以按模型进行创建,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 *);//为其施加向前的力

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

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

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

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

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

using UnityEngine;
using System.Collections; //当游戏对象不可见时销毁
public class AutoDestory : MonoBehaviour
{ void OnBecameInvisible(){
Destroy (this.gameObject);
}
}

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

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

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

using UnityEngine;
using System.Collections; public class Test : MonoBehaviour { public Material cubMeterial; // Use this for initialization
void Start () {
GameObject cubeObject = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cubeObject.transform.position = new Vector3(-2.0f, 0.5f, 4.0f);
cubeObject.renderer.material = cubMeterial; } }

Unity3D基础--动态创建和设置游戏对象的更多相关文章

  1. 【Unity】6.3 通过 C# 脚本创建和访问游戏对象

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 在游戏开发过程中,脚本不但需要访问脚本所在的游戏对象的组件,还经常需要访问和控制真他游戏对象.另外,根据项目需求,还可能 ...

  2. unity3d教程动态创建简单平面地形

    unity3d创建地形是不须要usingUnityEditor的.这里使用了AssetDatabase.所以需using UnityEditor; 创建三步: 1.TerrainData terrai ...

  3. Unity3D中动态创建编辑轴(点,线,圆,圆锥)

    问题分析: 最近在搞软件底层开发,将一些工具或者底层脚本打成dll导入unity使用,有这样一需求,就是编辑功能,需要像Scene场景一样,实现那种编辑轴 实现方式: 创建Mesh,构建编辑轴,这个地 ...

  4. Unity3D 中的面向对象设计 {游戏对象(创建、删除、获取),以及添加修改组件}

    一.创建游戏对象 游戏对象分三种:(1) 将物体模型等资源由Project工程面板拖拽到Hierarchy层次面板中 (2) 由GameObject菜单创建Unity自带的游戏对象,如Cube.Cam ...

  5. 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板

    [源码下载] 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板 作者:webabcd 介绍不可或缺 Window ...

  6. 使用Unity创建塔防游戏(Part3)—— 项目总结

    之前我们完成了使用Unity创建塔防游戏这个小项目,在这篇文章里,我们对项目中学习到的知识进行一次总结. Part1的地址:http://www.cnblogs.com/lcxBlog/p/60759 ...

  7. 使用Unity创建塔防游戏(Part1)

    How to Create a Tower Defense Game in Unity - Part1 原文作者:Barbara Reichart 文章原译:http://www.cnblogs.co ...

  8. Angular动态创建组件之Portals

    这篇文章主要介绍使用Angular api 和 CDK Portals两种方式实现动态创建组件,另外还会讲一些跟它相关的知识点,如:Angular多级依赖注入.ViewContainerRef,Por ...

  9. unity初始篇 选择游戏对象

    之前两任社长都在一直强调要写博客,一直没有写过,现在我已经踏上了博客的道路! 首先声明:本人才疏学浅,对unity认识不深,有错误的地方欢迎大家指出,在此谢过! 本文所说的选择对象,是指在游戏过程中动 ...

随机推荐

  1. 【阿迪达斯 ZX850 系列】

    [阿迪达斯zx850系列 灰蓝桔 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX850 新配色B34720 情侣鞋 36-44] [阿迪达斯 ZX85 ...

  2. 自定义windows新建菜单

    注册表下找到hkey_classes_root 找到想要新建的文件扩展名(.txt,.php,.html,.xml etc.) 创建名为ShellNew的键,再在其下添加NullType的项

  3. 记一次ifconfig命令

    由于Windows 10的强制更新,原来的Virtual box Host-Only驱动莫名奇妙的不见了,于是上网找各种解决方案: 1.重新生成虚拟网卡适配器:执行 VBoxManage.exe ho ...

  4. CDN 技术详解(DNS,GSLB,Cache)

    CDN 是什么 CDN(Content Delivery Network,内容分发网络),即全网内容加速服务.为了尽可能的避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳 ...

  5. CentOS 6 到 CentOS 7

    redhat提供了一个redhat-upgrade-tool的升级工具: [1]配置软件源   # vim /etc/yum.repos.d/upgrade.repo [upgrade] name=u ...

  6. Unexpected end of file from server 服务器访问问题导致

    Caused by: java.net.SocketException: SocketException invoking http://xxxx/cxf/xh/creditInterface?wsd ...

  7. linux 维护常见场景小命令 (未完待续)

    1.安装KDE桌面 [root@rhel06 ~]# yum -y groupinstall "X Windows System" "KDE Desktop" ...

  8. UIWebView的使用

    iOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种 ...

  9. MS-MPI 的使用

    MPI在windows上的扯淡 MPI的实现一般使用MPICH与OpenMPI,这两个库在12年的版本就已经停止了对windows的更新,不支持MPI的新特性(也不知道有没有bug方面的问题),配置的 ...

  10. c#变量缺少using引用,如何快速加上using,加Using的快捷键[bubuko.com]

    在vs的“工具”->“选项”中,左侧树形菜单,“环境”下的“键盘”中设置快捷键. 在“显示命令包含”输入框内输入“显示智能标记”,找到“视图.显示智能标记”,可以看到该命令的快捷键已经分配了2个 ...