游戏编程之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 服 ...
随机推荐
- HTML5移动应用左右滑动touchmove touchmove touchend 实例
也是刚开始接触移动前端,大虾别喷 <!DOCTYPE HTML> <html> <head> <meta name="viewport" ...
- HBase(三)HBase架构与工作原理
一.系统架构 注意:应该是每一个 RegionServer 就只有一个 HLog,而不是一个 Region 有一个 HLog. 从HBase的架构图上可以看出,HBase中的组件包括Client.Zo ...
- Hive(五)数据类型与库表操作以及中文乱码
一.数据类型 1.基本数据类型 Hive 支持关系型数据中大多数基本数据类型 类型 描述 示例 boolean true/false TRUE tinyint 1字节的有符号整数 -128~127 1 ...
- CSharp中的?.运算符
在编译chromiumFX工程时候,编译失败,无法正常工作.是运算符 (?.)的错误,经过查找,该运算符 参考NULL 条件运算符(C# 和 Visual Basic) 用于在执行成员访问 (?.) ...
- 【AtCoder】AGC011 D - Half Reflector
题解 大意是n个管子排成一排,每个管子有两种状态,A状态是从某个方向进去,从原方向出来,B状态是从某个方向进去,从另一个方向出来 球经过一个A状态的管子这个管子会立刻变成B状态,经过一个B状态的管子会 ...
- 【51nod】1773 A国的贸易
题解 FWT板子题 可以发现 \(dp[i][u] = \sum_{i = 0}^{N - 1} dp[i - 1][u xor (2^i)] + dp[i - 1][u]\) 然后如果把异或提出来可 ...
- 同一个IP不同端口号使用session失效
背景 我有两个工程projectA.projectB,projectA放在TomcatA中,projectB放在TomcatB中,TomcatA.TomcatB在一台server上. 工程都映射的根路 ...
- CSU - 2061 Z‘s Coffee
Description Z is crazy about coffee. One day he bought three cups of coffee. The first cup has a cap ...
- jQuery事件和动画
1.toggle事件 <!DOCTYPE html> <html> <head lang="en"> <meta charse ...
- 掩码计算工具netmask
掩码计算工具netmask 在网络扫描和防火墙配置中,经常需要计算IP地址范围和对应的掩码.为了简化这个过程,Kali Linux预置了一个掩码计算工具netmask.该工具不仅可以根据IP地址范 ...