Unity3D中GameObject 详细介绍
通过Hierarchy面板下的Create菜单可以手动地创建一个GameObject,它可以是一个相机,一个灯光,或者一个简单的模型,当我们要在程序里面动态地创建一个相机的时候,可以new一个GameObject,然后把Camera组件Add给它就可以了,创建灯光,GUI等也类似,但要创建简单模型的时候,我发现并没有类似Cube,Sphere这样的组件可供添加,后面知道,通过GameObject这个类的一个静态方法可以达到这个目的
static GameObject CreatePrimitive(PrimitiveType type);
可以根据PrimitiveType创建五种类型的基础模型
PrimitiveType.Plane,PrimitiveType.Cube,PrimitiveType.Sphere,PrimitiveType.Capsule,PrimitiveType.Cylinder
Unity3D提供一种被称为Prefab的预置对象,它是以文件的形式保存在硬盘上的一个GameObject,它里面可能包含了各种设置,组件,还有一些脚本。Prefab允许我们在不同的Scene,甚至Project中使用同一个对象,例如我实现了一个子弹,通过打包成Prefab,我可以在另外一个游戏里面直接使用它。
当一个Prefab对象被修改的时候,它的所有实例都会相应地被修改
在代码里面动态地实例化一个Prefab对象
public GameObject obj;
obj = Instantiate( obj );
要先创建一个公有变量,然后把这个Prefab拖到这个变量上,然后才可以用它来实例化对象(我感到一种蛋蛋的忧伤,能不拖吗)
通过Resources这个类的静态方法可以将Prefab对象动态加载进来,创建GameObject
GameObject之间的通讯,在游戏中,我们往往需要知道其他对象的一些信息,所以我们经常需要动态地查询另外一个GameObject
1. 查找父节点 transform.parent
2. 查找子节点 transform.Find(“name”); transform.Find(“Arm/Hand/Finger”); 没有找到会返回null,名字如果包含”/”字符将像路径一样穿越层次
3. 查找场景中的其他GameObject
GameObject.Find 从Scene下开始查找,根据GameObject的名字进行查找,允许使用”/”穿越层次查找,
GameObject.FindWithTag根据Tag查找一个GameObject,
GameObject.FindGameObjectsWithTag 根据Tag批量查找GameObject
GameObject的name和Tag可以直接设置,但Tag需要在标签管理器先定义一个Tag,这个Tag才可用,你不能将一个未定义的Tag赋给GameObject的Tag变量
最后还有一种搓搓的通讯方法,通过Message来调用其他GameObject,默认是垃圾短信群发,也可以将一个Object穿进去,然后调它的方法
methodName为方法名,value为方法的参数,options表示是否必须有对象接收该消息(如果是,且没有对象接受,u3d报错)
//调用本级别所有的GameObject上所有脚本的methodName方法
void SendMessage(string methodName, object value = null, SendMessageOptions options = SendMessageOptions.RequireReceiver);
//朝本级别和上级父节点发送调用命令
void SendMessageUpwards(…)
//目标是本级别和全部子节点…
void BroadcastMessage(…)
调用Object的Destroy方法可以销毁一个GameObject,组件,或者资源。这是一个静态方法,函数的原型为 static void Destroy(Object obj, float t = 0.0F );
可以通过将this传入,销毁自己。
GameObject的成员变量很多
Unity3D中GameObject 详细介绍的更多相关文章
- Unity3d 发动机原理详细介绍
Unity3d 发动机原理详细介绍 www.MyException.Cn 发布于:2013-10-08 16:32:36 浏览:46次 0 Unity3d 引擎原理详细介绍 体系结构 ...
- 转:Http协议中Cookie详细介绍
Http协议中Cookie详细介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了, ...
- Unity3d 引擎原理详细介绍、Unity3D引擎架构设计
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- Unity3d 引擎原理详细介绍、Unity3D引擎架构设计 - zhibolife
时间 2014-03-24 11:18:00 博客园-所有随笔区原文 http://www.cnblogs.com/zhibolife/p/3620440.html 体系结构 为了更好地理解游戏的 ...
- Unity3d 引擎原理详细介绍
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- Laravel 模板引擎Blade中标签详细介绍
这篇文章主要介绍了Laravel模板引擎Blade中section的一些标签的区别介绍,需要的朋友可以来看看. Laravel 框架中的Blade模板引擎很好用,但是官方文档介绍的并不详细,我接下来将 ...
- unity3d中gameObject捕获鼠标点击
gameObject需加上Colider 一.在update中(推荐) void Update () { //左键 )) disFlag = true; //右键 )) disFlag = true; ...
- Http协议中Cookie详细介绍(转)
原文:http://www.169it.com/article/3217120921.html Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存C ...
- Http协议中Cookie详细介绍
Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的.硬盘Cookie ...
随机推荐
- (27) java web的struts2框架的使用-基于表单的多文件上传
和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件. 一,action的实现: public class MutableFilesUpload extend ...
- Kafka在Windows安装运行
摘要:本文主要说明了如何在Windows安装运行Kafka 一.安装JDK 过程比较简单,这里不做说明. 最后打开cmd输入如下内容,表示安装成功 二.安装zooeleeper 下载安装包:http: ...
- Codility经典算法题之九:MissingInteger
Task description: This is a demo task. Write a function: that, given an array A of N integers, retur ...
- (C/C++)register关键字
register:这个关键字的作用是请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率. 注意是尽可能,不是绝对.一个CPU 的寄存器也就那么几个或几十个,你要是定义了 ...
- LoadRunner性能测试样例分析
LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...
- 第一次通过AVD Manager创建了一个虚拟设备,但是在Android Studio运行程序时却无设备可选
第一次通过AVD Manager创建了一个虚拟设备,但是在Android Studio运行程序时却无设备可选 原因是adb.exe未运行起来 至于adb.exe未正常运行起来的原因多半是5037端口被 ...
- 后台while收发过程
fuse_loop_mt.c 中fuse_do_work函数使用while循环在后台不断运行,每一个while循环中,主要有两个操作. 1. fuse_session_receive_buf(mt-& ...
- 「LuoguP1799」 数列_NOI导刊2010提高(06)
题目描述 虽然msh长大了,但她还是很喜欢找点游戏自娱自乐.有一天,她在纸上写了一串数字:1,1,2,5,4.接着她擦掉了一个l,结果发现剩下1,2,4都在自己所在的位置上,即1在第1位,2在第2位, ...
- 【USACO】 Balanced Lineup
[题目链接] 点击打开链接 [算法] 这是一道经典的最值查询(RMQ)问题. 我们首先想到线段树.但有没有更快的方法呢?对于这类问题,我们可以用ST表(稀疏表)算法求解. 稀疏表算法.其实也是一种动态 ...
- 洛谷P2148 E&D——打表
题目:https://www.luogu.org/problemnew/show/P2148 先打表找个规律: #include<iostream> #include<cstdio& ...