游戏编程之Unity常用脚本类的继承关系
前言
学习Unity开发引擎的初学者会接触大量的脚本类,而这些类之间的关系往往容易被忽略。
本文对Unity引擎开发中的一些常用类及其关系进行了简单的归纳总结。
博文首发地址:http://tieba.baidu.com/p/3611960338
Unity常用脚本类继承关系图
对Unity开发稍有了解的朋友都知道,在Unity开发框架中有4个基本层次:工程(应用程序)、场景、游戏对象和组件。
在脚本中,整个应用程序和场景由Application类控制;而游戏对象和组件类均继承于Object类。
在Object类的派生类中,还有一些类,他们绝大多数都属于资源,是构成组件以及游戏对象的组成部分。
还有一部分常用类并不继承于UnityEngine中的Object类,从功能上可以看出这些类的主要作用是从某一方面进行宏观控制。
从这个意义上说,可以把Application类和其它有宏观控制作用的类归为一类。
这样以来Unity中的常用脚本类就可以简单的分成如下四大类:
一、宏观控制类
主要作用是真对Unity程序中的某一方面进行宏观控制。
包括:
Application —— 应用程序类
Input —— 输入类
GUI —— 图形输出类
Physics —— 物理引擎类
Resources —— 资源类
Time —— 时间类
等等
二、游戏对象(GameObject)类
由于Unity是面向组件的开发模式(而非面向对象),所以从类的继承关系中也能看出:
对于GameObject类没有下太多的笔墨,而是将更多的内容交给下面的组件类。
三、组件(Component)类
脚本开发中的组件类往往可以和图形界面中的检视面板对应起来。
每一个游戏对象的细节设置与操控都需要借助组件类来完成。
在常用组件类中,有两个继承关系需要特别提一下:
(1)角色控制器(CharacterController)类继承于碰撞器(Collider)类
(2)有一组类并不直接继承于组件类,而是通过继承Behavior类间接的继承,包括我们熟知的MonoBehavior类
至于为什么会这样设计类,在入门篇就不深入讨论了。但是我们可以根据对这些组件类的已有认知先形成一个感性认识。
四、资源类
对于刚入门的初学者来说,资源一般都是在图形界面导入进来之后直接使用。
通过脚本创建资源或者修改资源本身的情况不是很多。
而个人认为,精通资源类是走出初学阶段很重要的一步,也是代码开发摆脱素材限制的一种重要手段。
后语
途中用颜色标记了 基础、拓展和进阶 三个类别。
这个是对初学者而言的,对于有经验的Unity开发人员来说,这些常用的类应该都属于“基础”。
另一方面,每个人的学习路线不同,阶段划分也会不一样,仅供参考。
游戏编程之Unity常用脚本类的继承关系的更多相关文章
- C#开发Unity游戏教程之Unity中方法的参数
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...
- [Android Studio] Android Studio中查看类的继承关系
转载自:http://blog.csdn.net/hyr83960944/article/details/38098091 查看类的继承关系的快捷键F4,在Android Studio常用快捷键这篇文 ...
- phpstorm查看类的继承关系
在看一些框架源码时,有些类有很多的继承或者接口,有一款神奇的帮助很重要 选中一个类文件,右键,选择diagrams->show diagrams 即可得到类的继承关系,如上右图 使用函数 fun ...
- Pycharm 查看一个类的继承关系图
Pycharm 查看一个类的继承关系图 在我们开发过程中: 无论是使用的开发框架自带的类, 还是我们自定义的类都特别多; 并且类之间单继承和多继承频繁使用, 这个继承,不仅仅是一级的继承关系,包括好几 ...
- Android Studio中查看类的继承关系
查看类的继承关系的快捷键F4.在Android Studio经常使用快捷键这篇文章中.有写了.今天主要是讲一些关于这个快捷键出来的界面的一些配置.这块功能相对偏冷一些,可能非常多人都会用不到.可是关于 ...
- cc.isChildClassOf 判断两个类的继承关系
使用 cc.isChildClassOf 来判断两个类的继承关系: var Texture = cc.Class(); var Texture2D = cc.Class({ extends: Text ...
- 使用IntelliJ IDEA查看类的继承关系图形
最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟. 这次利用了IDEA的diagram,结果一目了然,也是好用到 ...
- (转)Python异常类的继承关系
原文:https://blog.csdn.net/Dragonfli_Lee/article/details/52350793 https://www.cnblogs.com/Lival/p/6203 ...
- 第一篇:初识ASP.NET控件开发_第一节:控件类及其继承关系
1)System.Web.UI.Control(以下简称Control) Control 类是包括自定义控件.用户控件和页在内的所有 ASP.NET 服务器控件的基类..定义由所有 ASP.NET 服 ...
随机推荐
- CTF内存高级利用技术
起了一个比较屌的标题,233.想写这篇文章主要是看了kelwya分析的议题,于是准备自己动手实践一下.蓝莲花的选手真的是国际大赛经验丰富,有很多很多的思路和知识我完全都没有听说过.这篇文章会写一些不常 ...
- 如何适配处理iphoneX底部的横条 - ios
iphoneX手机取消了实体Home键,取而代之的是主界面底部不显眼的横条“Home Indicator”.当网页底部fixed 元素时候,一部分元素可能就被这个横条遮挡住,怎么适配解决呢? 第一步: ...
- CCF CSP 201612-3 权限查询
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201612-3 权限查询 问题描述 授权 (authorization) 是各类业务系统不可缺 ...
- Hive(八)Hive的Shell操作与压缩存储
一.Hive的命令行 1.Hive支持的一些命令 Command Description quit Use quit or exit to leave the interactive shell. s ...
- USACO 6.1 Cow XOR
Cow XORAdrian Vladu -- 2005 Farmer John is stuck with another problem while feeding his cows. All of ...
- IOS成长之路-Xcode cannot run using the selected device. 解决办法
PROJECT --> Info --> Deployment Target --> IOS Deployment Target 里面的值 要设置为 <=真机系统版本 TA ...
- 磁盘清理-安全转移C盘中软件的缓存文件
C盘飘红啦~~~ 安装软件时,默认会安装到C盘,并不会特意去改(尤其C盘是固态硬盘时).或者,根本就没有给你修改的机会. 可是啊,有些软件的缓存数据目录会比较大,实在太占C盘空间.想移出去,但又不想重 ...
- Bzoj5294/洛谷P4428 [Bjoi2018]二进制(线段树)
题面 Bzoj 洛谷 题解 考虑一个什么样的区间满足重组之后可以变成\(3\)的倍数.不妨设\(tot\)为一个区间内\(1\)的个数.如果\(tot\)是个偶数,则这个区间一定是\(3\)的倍数,接 ...
- django创建model
1.model实例 #!/usr/bin/python # coding:utf-8 from __future__ import unicode_literals from django.db im ...
- bzoj4641 基因改造 KMP / hash
依稀记得,$NOIP$之前的我是如此的弱小.... 完全不会$KMP$的写法,只会暴力$hash$.... 大体思路为把一个串的哈希值拆成$26$个字母的位权 即$hash(S) = \sum\lim ...