Unity3D脚本基础

Unity3D中的引用类型

UnityEngine.Object类

在Unity3D的脚本系统中,Unity使用命名空间UnityEngine来盛放Unity3D定义的类型;
其中UnityEngine.Object类是最基本的类,是在Unity3D中所有对象的基类;
所有派生自UnityEngine.Object类的公共变量都会被显示在监视面板中,Unity程序员可通过编辑器来修改这些变量的数值。

UnityEngine.Object类提供的类成员:

字段:

  • hideFlags: 标识该游戏对象是否被隐藏
  • name

公共方法:

  • GetInstanceID
  • ToString: 返回该游戏对象的名称

静态方法:

  • Destory
  • DestoryImmediate
  • DontDestoryOnLoad
  • FindObjectOfType
  • FindObjectsOfType
  • Instance

UnityEngine.Component类

除了基本的UnityEngine.Object类之外,另一个很重要的UnityEngine.Component类派生自UnityEngine.Object类,它是所有能添加到游戏对象GameObject上组件Component的基类。

UnityEngine.Component类提供的类成员:

字段:

  • gameObejct: 该组件所在的游戏对象
  • tag: 该组件所在游戏对象的标签
  • transform: 该组件所在游戏对象上的Transform组件

公共方法:

  • BroadcastMessage
  • CompareTag: 返回该对象是否被标签标记
  • GetComponent
  • GetComponentInChildren
  • GetComponentInParent
  • GetComponents
  • GetComponentsInChildren
  • GetComponentsInParent
  • SendMessage
  • SendMessageUpwards

UnityEngine.Behaviour类

UnityEngine.Behaviour类继承自UnityEngine.Component类,
是一个可以启用或者禁用的组件

UnityEngine.Behaviour类提供的类成员:

变量:

  • enable: 启用状态下,会执行每帧的更新,禁用状态不会被执行
  • isActiveAndEnable: 表示当前Behaviour是否被启用

UnityEngine.MonoBehaviour类

UnityEngine.MonoBehaviour继承自UnityEngine.Behaviour类;在Unity3D游戏引擎中,UnityEngine.MonoBehaviour类是所有Unity3D脚本的基类。

UnityEngine.MonoBehaviour类提供的类成员:

消息:

  • Awake
  • FixedUpdate
  • Update
  • LateUpdate
  • OnBecameInvisible
  • OnBecameVisible
  • OnCollisionEnter
  • OnCollsionExit
  • OnCollisionStay
  • OnDestory
  • OnDisable
  • OnEnable
  • OnGUI
  • OnLevelWasLoaded
  • OnMouseDown
  • OnMouseDrag
  • OnMouseEnter
  • OnMouseExit
  • OnMouseOver
  • OnMouseUp
  • OnMouseUpAsButton
  • OnTriggerEnter
  • OnTriggerExit
  • OnTriggerStay
  • OnValidate
  • Start
  • Reset

公共方法:

  • CancelInvoke
  • Invoke
  • InvokeRepeating
  • IsInvoking
  • StartCoroutine
  • StopAllCoroutine
  • StopCoroutine

Unity3D脚本编程时需要注意,在C#中使用new操作符来实例化引用类型,但是在Unity3D中编写脚本时,凡是继承自MonoBehaviour类的类型包括MonoBehaviour本身都无法使用new关键字来进行实例化;
在Unity3D中我们可以通过将脚本以组件的形式挂载在游戏对象上来实现创建类型对象的目的。
当然,不需要继承自MonoBehaviour类的类型,是可以通过new操作符实例化的。

Unity3D中的值类型

向量结构

Vector2、Vector3、Vector4这三个结构体分别用来表示二维、三维、四维向量。

向量结构的实例成员:

  • magnitude
  • normalized
  • sqrMagnitude
  • x
  • y
  • z
  • w

向量结构的方法:

  • Cross
  • Dot
  • Distance
  • Lerp

向量计算

向量之间的点乘:
向量a(x1,y1,z1) 向量b(x2,y2,z2)
公式一:

a·b = x1x2 + y1y2 + z1z2

公式二:

a·b = |a||b|cos<a,b>

a·b的几何意义:向量b在向量a所处单位向量方向上的投影长度乘以向量a的模。

向量之间的叉乘:

公式一:

ab = (x1,y1,z1)(x2,y2,z2)
=(y1z2-z1y2,z1x2-x1z2,x1y2-y1x2)

公式二:

|a*b| = |a||b|sin<a,b>

其他值类型

  • Color
  • Color32
  • Ray
  • Touch
  • RaycastHit
  • Bounds
  • Rect
  • Plane

    REF

    Unity3D脚本编程

转载于:https://www.cnblogs.com/sylvan/p/8834947.html

Unity笔记——1.Unity3D脚本基础相关推荐

  1. Unity中的MonoBehaviour脚本-基础知识和继承关系

    本文分享Unity中的MonoBehaviour脚本-基础知识和继承关系 作为一个程序员, 在Unity中开发, 我们接触最多的对象之里一定有MonoBehaviour, 所以作为Unity基础知识学 ...

  2. Bash脚本编程学习笔记02:脚本基础和bash配置文件

    脚本基础 参考资料:Shell Scripts (Bash Reference Manual) 不严谨地说,编程语言根据代码运行的方式,可以分为两种方式: 编译运行:需要先将人类可识别的代码文件编译成 ...

  3. [Unity安卓开发]Unity3D Gradle基础

    Unity 将 Gradle 用于所有 Android 构建.可以在 Unity 中构建输出包(.apk..aab),也可以从 Unity 导出 Gradle 项目,然后通过外部工具(如 Androi ...

  4. 【Unity】6.1 Unity中的C#脚本基础知识

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float. ...

  5. 【Unity学习笔记】b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别)

    [Unity学习笔记]b站Unity架构课Unity3D 商业化的网络游戏架构(高级/主程级别) 自己跟着学完了,写了不少代码,会放在CSDN代码库,因为老师并没有提供源码,录屏也不是完全连续,所以难 ...

  6. Unity3D赛车游戏+脚本基础

    前言 游戏对象实例化 Scenes游戏场景 GameObject游戏对象 Component组件 Component使用方法 预制体 Unity事件函数 Instantiate():实例化对象 什么是 ...

  7. 从游戏脚本语言说起,剖析Mono所搭建的脚本基础

    0x00 前言 在日常的工作中,我偶尔能遇到这样的问题:"为何游戏脚本在现在的游戏开发中变得不可或缺?".那么这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又 ...

  8. unity3d音频基础知识

    本篇是本人学习courera课程unity3d编程基础 课程笔记,想学习可以直接报名哦.文章版权归本人所有,转载请谨慎. 游戏中,音频也是非常重要的元素.这里介绍一些基础知识: 声波 首先我们介绍声波 ...

  9. Unity3d UGUI基础控件使用(一)

    转载自:Unity3d UGUI基础控件使用(一) 一:UGUI介绍 UGUI是Unity4.6之后,经过多重测试,推出全新的UI系统,更灵活,快捷,易用的可视化游戏UI开发工具. 由于之前传统的UI ...

  10. Unity笔记-25-简单的商城系统数据库操作

    Unity笔记-25-简单的商城系统&数据库操作 要求与分析 英雄属性界面 展示英雄头像,英雄名称,英雄属性(AD,AP,AR,SR,自左向右,自上向下),金币数量 商店界面 展示可购买的物品 ...

最新文章

  1. 谷歌、亚马逊的顶级GPU被质疑太贵了!这种CPU算法竟然快15倍
  2. c语言装饰,C++设计模式之装饰模式(Decorator)
  3. 中文短文本相似度:WMD
  4. android 去除启动广告_APP启动页广告去除
  5. bzoj 1016: [JSOI2008]最小生成树计数【dfs+克鲁斯卡尔】
  6. zookeeper 3.6.2启动报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
  7. android代码使用adb,如何使用adb在Android 11上触发BroadcastReceiver?
  8. inchat库下载 python_Linux 环境下安装 Python3 的操作方法
  9. 数据结构之树的定义及操作
  10. C++下用什么矩阵运算库比较好
  11. 计算机等级二级c语言考试真题,历年计算机等级考试二级C语言上机真题及答案..pdf...
  12. Vue开发实例(03)之Vue项目引入element_ui
  13. 前端页面读取ukey
  14. Android Databinding 与 RecycleView mvvm的运用
  15. 春生冬至时——今日冬至
  16. word论文排版和写作06:审阅和修改文章
  17. 基于大规模基因敲除实验揭示182个癌细胞免疫逃逸相关基因,指导肿瘤免疫治疗的研究
  18. 科大讯飞麦克风阵列使用感受(六麦,XFM10621)
  19. Matlab中频谱、功率谱、功率谱密度的关系以及如何求信号的功率
  20. git安装 苹果笔记本_个人博客第5篇——安装node.js和Hexo

热门文章

  1. 「leetcode」234. 回文链表:【数组模拟】【翻转后半部分】详解
  2. Illustrator 教程,如何在 Illustrator 中格式化文本?
  3. 苹果mac投屏软件:AirServer
  4. Mac新手使用技巧,键盘键位分布和快捷键
  5. 如何高级地对抗恶意程序的糖衣炮弹?
  6. 【转】WebService 的创建,部署和使用
  7. 大数据实验室(大数据基础培训)——Kafka的安装、配置及基础使用
  8. OAF_OAF Framework页面分析(概念)
  9. 防止 7-Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码
  10. 设置MyEclipse编码、补全快捷键、字体大小