Unity3D类分析——全局的类分析

今天 开始了另一种模式的学习,那就是学习 unity3d脚本中的类。纵观整个Unity3D的脚本我们可以将其分为两中类型:运行时类和编辑器类。(由于编辑器类到目前只是实验了一些功能,所以不敢多说,这里就只是分析运行时类了。)
运行时类的意思就是说在运行时调用的方法(呵呵,我自己的理解)对比的是静态的,固定的等等。这种类允许我们在程序运行时做一些事情,比如Camera的属性设置,我们可以在我们的程序运行过程中调节,而不用一定要在游戏开发的时候设置好。对对Unity3D中的类进行分析有助于我们更好的理解Unity3D是怎么样的一种引擎,以及它的结构更清晰等等。所以,让我们开始Unity3D的类分析吧~在类分析的过程中,我们会发现,有的类会对应着一个或者多个组件,不妨我们也捎带着了解一下这些组件。另外,我们对于类的认识深度设置为方法和属性这样一个深度,再往基础走的话,就只是贴出一些连接,我自己的学习或者网络上讲解的很清晰的文章。谈到类就不得不说一些关于类的特向,比如面向对象,类继承,多态,这些概念是你必须懂得,不然做一个不懂基本概念的程序员是很痛苦的事情,(只有你知道了,才知道学习起来不那么费力的原因),建议先打好变成基础在来学习这样高级的应用。(当然,也可以直接学习,基础慢慢的补上,因人而异)。好吧,我们先来认识一些特殊类1. Object 类  几乎在较为成熟的语言框架里都会有这样一个类,比如在Java里面也是Object作为基类,还有安卓的SDK中,Unity里面解释为 所有Unity中的基类。这样一个基类的作用非常重要,我们看Unity3d 里面用它来做什么?



也是定义了一些方法和属性,然而,这些属性却是每一个在Unity3d 厘米都要用到的属性,比如ToString()(将其字符化,网络中传输的必须工具),所以,发挥了面向对象的作用,利用继承将所有属于他的子类都有了这些公共属性,而不必一个一个的写上去。值得一提的是,在Debug中(调试专用)
的参数书Object 这就表明,你所有的对象都可以拿来输出,不必参加转换后再输出,方便的很啊~当然,这里还有其他的方法,比如再介绍一个: 就是 ==  和!= 的重写。这样,每个Object 类型的对象就可以参与比较了。这就是Object类的解释,其他的属性,可参考圣典里面的了。http://game.ceeger.com/Script/Object/Object.html2.  Component 类 是组件类,继承自Object 类 正如帮助文档上说的 Base class for everything attached to GameObjects. (每一个绑定到游戏对象上的东西的基础类)又一个基础类,但是缩小了范围:组件的基础类。所以,我们相信,所有的组件(包括你写的脚本组件)中的一些公用的方法都在这个里面了。
首先,我们将眼睛定睛在属性上,我们看到 上面的是 The someComponent attached to this GameObject .意思很简单,当我们在某一个游戏对象上附着了一个组件的时候,其实他已经有了该组件的对象了。比如:Camera 我们创建一个空的游戏对象,添加一个脚本:Test.cs添加简单一行代码:Rect r=camera.rect; 就会报错:
但是,我们给这个对象添加了 Camera组件后就不会报错了。所以,有组件,就有了一个对应组件的对象!其他的组件也是一样的。再看方法:都是字面意思,获取组件,获取其他物体的组件等等。具体请参考 http://game.ceeger.com/Script/Component/Component.html(唉,绝对没受广告费,人家做的不错,咱得分享啊)3. GameObject 类 继承自Object类 游戏对象类   属性和方法如图:
在他的属性里面,我们也能看到很多组件的对象,这个和Component类里面的区别是什么呢?其实是一个意思。我们思考一下,组件是为了访问每一个组件设置的,所以他有每一个组件来访问,而组件的宿主是什么呢? 就是GameObject! 所以,这里是一样的。当我们访问到了这个游戏对象,也就可以访问它的每个组件了。有一个构造函数(这里解释)。帮助我们在脚本中创建游戏对象。方法的具体功能,可以参考这里 http://game.ceeger.com/Script/GameObject/GameObject.html这里还有一个要提的就是 第三个 类方法。类方法就是可以使用类来访问的方法而不必使用对象访问,我们来看一个案例: static function Find (name : String) : GameObject没错 就是static导致的 成为了这个类的全局方法,但是这样的方法也是有一定的局限性的,比如静态方法的特殊性导致它只能被静态方法所使用。(内存分配方式不同的原因)好吧今天就分享这些吧。接下来分享:Camera类Mesh类Mathf类
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值