打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Unity开发】GameObject
userphoto

2014.03.28

关注

 【Unity开发】GameObject

写在前面——

    如果转载请注明出处,谢谢大家支持

                                                        ——Forward

                                                                  我的微博——秦京一梦 

 

GameObjectUnity中一个很重要的角色。对GameObject学习能够让我们更好的进行Unity开发,今天我们就来学习一下GameObject这个概念——

 

在我们的Unity游戏中每一个对象都是一个GameObject,但是没有我们的指示,这些GameObject对象不会自己做任何事情。GameObject就像一个可以由我们自己定义的容器,我们让它包含什么样的属性,它就是一种什么样的GameObject——一个角色或者一个特效等等。

    好的,这里就有一个问题了,既然游戏中的每个对象都是一个GameObject,我们又是如何来区分它们呢?

    前面我们已经说过,GameObject就是一个容器。在这个空箱子中放不同的东西(属性),就组成了不同的对象类型。也就是说,游戏中需要什么的元素,我们都可以通过向GameObject中添加组件(Component)的方式来实现,当然,我们还可以通过脚本(Script)来创建自定义的组件。

 

GameObject和组件(Componet)的关系

前面说了,一个GameObject,我们可以根据需要给他添加各种不同的Componet来实现我们预期的效果。当我们创建一个新的GameObject的时候都会自带一个Transform(这个Componet包含了位置,旋转,缩放属性),我们可以修改这些属性。

Transform Component

Transform Component是最重要的一个Component,因为所有的GameObject的使用要涉及到Transform的属性(每个游戏对象在游戏世界中的表现,都要设置其位置,旋转,缩放的)。

【Unity开发】GameObject

1

这里需要说明一下,在Unity游戏场景中,我们不可能创建一个不包含任何Transform的空GameObject。如果一个GameObject而不包含任何Transform Component,那么这个GameObject只能用来存储数据,而不能在游戏场景中显示。

 

其他组件

Transform ComponentGameObject来说是相当重要的一个组件,但是对一个GameObject来说,他除了需要一个Transform组件之外,一般来说,我们还会给他挂上其他的一些组件(比如:button的点击响应、动画效果甚至是我们自己定义的一些组件)

 

组件的使用

通过上面的学习,我们已经知道了GameObjectComponent的一些概念和它们之间的关系。了解只是起步,真正应该怎么去使用它们呢?接下来,我们就来学习一下他们的使用过程。

 

添加组件

Unity的菜单栏,我们看到有一项Component,我们可以通过这一菜单项来添加Component给某一个GameObject

【Unity开发】GameObject

 

2

       在这个菜单项的下拉列表中我们也可以看到具体的Component有哪些。

                                     【Unity开发】GameObject

 

3

接着Unity的第一篇博客中的例子,我们向之前创建的GameObject中添加一个RigidbodyComponent(一个物理组件Component——Physics——Rigidbody),运行这个例子,看看与添加Rigidbody之前的例子有什么区别呢?(对,当我们运行起来时,发现场景中的GameObject受到重力影响,出现了由慢向快开始下落的效果,OK,添加组件成功!)

 

编辑组件

       我们可以在Inspector中看到GameObject多了一个Rigidbody的属性信息,在这里,我们可以根据自己的需要去修改新添加Component的属性。

【Unity开发】GameObject

 

4

       当然不同的Component有不同的属性供我们操作,这个我们可以自己去看看。

 

移除组件

       在开发过程中,当我们需要移除一个Component时,该怎么做呢?其实很简单,鼠标右键点击Component组件

【Unity开发】GameObject

 

5

GameObjectScript的关系

       这里肯定有人会问——如果现有的这个Component不能满足项目需求或者说我如何才能主动控制场景中的GameObject呢?根据ForwardUnity的现有理解,我们可以通过添加Script来达到这个目的。

              【Unity开发】GameObject

 

6

先我们需要创建一个自己的Script,如图6所示,(Assets——Create——JavaScript/C#Script/…)创建我们的目标Script,我们所预期的场景中的GameObject所要做的逻辑都是在这个Script中完成的,这么说,可能有人就糊涂了,新创建的Script是如何跟场景中的GameObject关联起来呢?这就涉及到Unity的操作(或许就是Unity被广泛开发人员肯定的一个重要原因吧,场景中的对象与脚本的关联,不需要过多的添加代码,而只需要使用鼠标拖拽就可以完成!)

这里,我们将新添加的Script——CubeTest用鼠标左键选中(不松开)直接拖拽至Hierarchy窗口中的Cube_Test(目标GameObject)上,然后松开鼠标就可以了,这样我们就对目标GameObject关联到了一个Script上(是不是那句广告语——“So easy”啊?^_^

                【Unity开发】GameObject

 

7

在目标GameObjectInspector窗口中查看添加结果,如图8所示——

                           【Unity开发】GameObject

 

8

这样,我们就可以在新添加的CubeTest Script中控制目标GameObject了。这里我们为了做测试,在CubeTest文件中添加如下代码——

        【Unity开发】GameObject

 

9

好了,运行起来之后,如我们所预期的,在Console窗口中,我们看到打印了预期log,证明关联是成功的!

         【Unity开发】GameObject

 

10

好了,GameObjec的学习到这里就结束了,明天还得上班,得休息啦~~~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Unity零基础到入门 | Unity中必备组件技能学习!
Unity中添加组件的几种方法
Unity的腳本物件模型程序开发指南
[Unity 3D] Unity 3D 性能优化(二)
Using Scripts 使用脚本
Unity中获取某个对象下面的组件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服