栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

UnityのC#脚本 其一

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UnityのC#脚本 其一

基础知识

脚本:.cs的文本文件 类文件,能附加到游戏物体上,定义游戏对象行为指令的代码

C#脚本再被添加到物体上后,会自动创建一个对象,物体上的Transform、音频一类组件都是某一类的对象,而游戏物体是GameObject类的对象。

当使用物体的组件时,使用的是物体组件的引用

当脚本中与Unity中,某个变量的值不一致时,通过方法访问到这个变量的值,结果为Unity中设置的,因为方法访问的是对象,而Unity创建和访问的就是这个类的对象。这里的脚本中的值,应该指的是初始化,脚本中的变量值,用于初始值的设置


特性

可以在变量声明的上方加上

  • [SerializeField] 即序列化字段,来使private的变量可以在编辑器中显示(private的变量,无法在Unity中被看到)
  • [HideInInspector] 可以在编译器中隐藏字段,比如public变量
  • [Range(min, max)] 可以限制编辑器中,这个变量的取值范围,使用后Inspector中的该变量会变成滑动数轴的形式

C#类与脚本之区别

C#类:字段、属性、构造函数、方法

脚本: 字段、方法

属性在编译器中不能显示,通常在脚本中不写。而脚本在附加到游戏物体上时自动创建对象,所以构造函数也不需要。

这里的脚本并不包括,GameCore之类的游戏核心和逻辑文件。


脚本生命周期

Unity脚本从唤醒到被销毁的过程

消息、必然事件:满足某种条件的Unity引擎自动调用的函数

初始阶段 Awake唤醒
  • 当物体载入时,立即调用一次
  • 常用于在游戏开始前进行初始化
  • 脚本被禁用时依然可以执行

  • 可以判断当满足某种条件执行此脚本 this.enable = ture
  • 程序开始时,会首先执行所有物体的Awake,然后是 Start 
OnEnable当可用

每当脚本对象启用时调用

Start开始
  • 物体载入且脚本对象启用时被调用一次
  • 脚本被禁用时不能执行
  • 常用于数据或游戏逻辑初始化
  • 执行时机晚于Awake
物理阶段

FixedUpdata固定更新

执行时机:脚本启用后,固定时间被调用,默认为0.02s

适用性:适用于对游戏对象做物理操作(移动,旋转),不会受到渲染影响

OnCollisionXXX 碰撞

当满足碰撞条件时调用

OnTriggerXXX 触发

当满足触发条件时调用

输入事件 OnMouseEnter 鼠标移入 OnMouseOver 鼠标经过 OnMouseExit 鼠标离开 OnMouseDown 鼠标按下 OnMouseUp 鼠标抬起

游戏逻辑

Updata

执行时机:渲染帧执行,执行间隔不固定(渲染时间不固定,因为每帧渲染量不同且不同设备机能有差异

适用性:处理游戏逻辑,有时为了代码简单,会将移动也放入此处,成为按帧移动

LataUpate 延迟更新

执行时机:处理游戏逻辑,与Updata在同一帧执行,但是一定在 updata被调用之后执行

适用性:适用于跟随逻辑 ,比如第三人称游戏的摄像机

场景渲染 OnBecameVisible 当可见

当Mesh Renderer 在任何相机上可见时调用

OnBecameInvisible 当不可见

结束阶段 OnDisable 当不可用

对象变为不可用或附属游戏对象非激活状态时次函数被调用

OnDestroy 当销毁

当脚本销毁或所附属的游戏对象被销毁时调用

OnApplicationQuit 当程序结束

应用程序退出时被调用


调试
  • vs调试:适合逻辑复杂的问题的调试,

    右键----快速监视和即时窗口: 适合Start,Awake

    单帧调试:适合FixedUpdate,在vs启动调试,然后在unity运行场景、到想要调试的位置后暂停游戏,加断点,打开单帧执行,结束


注意事项
  • 在未对Unity内部文件进行修改的情况下,开始自动创建的 Start 和 Updata方法在用不到时,记得删掉!
  • 如果想要一劳永逸,则应当对Unity根目录版本号EditorDataResourcesScriptTemplates,下的 81-C# Script-NewBehaviourScript.cs.txt 进行修改(打开方式用VS),修改为自己需要的样子

  •  每个类和方法之类的应该在其开头上写上///,介绍下这个类或方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号