美文网首页
GameObject相关

GameObject相关

作者: 90qq | 来源:发表于2016-12-20 11:29 被阅读0次

GameObject意指游戏对象
下面这些都是游戏对象


游戏对象

1 GameObject标识

1.1 Name

对象名,可以重复,无限数量

//我们可以通过名字寻找对象
GameObject.Find(string name);//此方法每次都会遍历整个场景来寻找匹配的游戏物体,比较消耗资源
1.2 Tag

对象的标签,在Tags&Layer面板中设置
当物体可能是空物体时,(游戏开发中,常用空物体去保存一些位置信息,空物体没有渲染,这时给物体添加一个图标,便于寻找查看)

//我们可以通过Tag标签来寻找游戏对象
GameObject.FindGameObjectWithTag(string tag);//查找一个对象
GameObject.FindGameObjectsWithTag(string tag);//查找所有挂载此标签的对象,并返回一个GameObject数组
例子
1.3 Layer

标记对象渲染组名字,常用于射线碰撞,摄像机裁剪,最多只能有32组
所在位置如下图

Paste_Image.png

2 动态创建物体

方法1 利用GameObject.CreatePrimitive创建

此方法创建一个带有基本网络渲染器和相应碰撞器的游戏物体

例子
方法2 利用GameObject.Instantiate创建
public GameObject obj1;
void Start () {
GameObject game1 = GameObject.Instantiate(obj1);
        game1.name = "Player2";
        game1.transform.position = new Vector3(2, 2, 0);
}
例子

3 动态添加物体组件

Paste_Image.png
//例子
//Sphere.AddComponent<Rigidbody>();//泛型
Sphere.AddComponent(typeof(Rigidbody));//非泛型

4 删除游戏对象

Destroy(Object obj);//立刻删除对象
Destroy(Object obj,float 1f);//延时删除

例子

5 发送消息

(1)向上发送消息,向物体自身和父物体发送消息,如果消息没有被任何一个组件处理,则会打印一个错误。
方法为:SendMessageUpwards("父物体方法名");//例子如下图
字物体脚本
(2)广播消息,对物体自身和所有子物体发送消息。如果消息没有被任何一个组件处理,则会打印一个错误。
方法为:BroadcastMessage("字物体方法名");//例子如下图
父物体脚本

打印结果如下

打印结果
(3)向同级发送消息,如果消息没有被任何一个组件处理,则会打印一个错误
方法为:Obj.SendMessage("同级物体方法名");//例子如下图

球的脚本


球的脚本

胶囊的脚本


胶囊的脚本

在unity的操作


在Unity的操作

打印结果如下

打印结果

相关文章

网友评论

      本文标题:GameObject相关

      本文链接:https://www.haomeiwen.com/subject/omltvttx.html