Unity脚本基础规则

Unity脚本基础规则

如何在Unity中创建一个脚本文件?

Project窗口中的Assets目录下,选择合适的文件夹,右键,选择第一个Create,在新出现的一栏中选择C# Script,此时文件夹内会出现C#脚本图标,为其进行命名即可(注意:每个脚本的脚本名必须要和他的类名相同),等待引擎编译完成可以双击打开脚本:

脚本创建规则

  1. 尽可能不在脚本编辑器中创建脚本,如果创建需要返回引擎界面一次让Unity引擎将脚本进行编译后方可正常修改脚本内容,否则可能会引起大量警告、报错等。
  2. 脚本文件可以放在Assets文件夹下任何位置,但建议存放于同一文件夹(如Scripts)。
  3. 脚本的类名和脚本名必须一致,修改类名或脚本名必须要手动修改另一个(因为Unity基于反射获取脚本信息,脚本文件名与类名不同将无法正确获取到对应类)。
  4. 建议不使用中文命名(会降低脚本文件美观性与可读性、不同编码计算机打开可能会出现乱码、在部分情况下中文命名会导致出现文件读取等方面的错误)。
  5. 无特殊需求的情况下,不需要单独设置命名空间。
  6. 创建的脚本会默认继承于MonoBehavior,有需要可以手动删除继承(没有继承该基类将无法挂载到场景对象上)。

MonoBehavior基类是什么?

重要的类 - MonoBehaviour Unity3D官方文档

MonoBehaviour - Unity文档

MonoBehavior是官方提供的一个脚本框架,提供了游戏运行时的各种事件等,每一个新建的脚本都会显式继承该类型,并且只有继承了该类型的脚本才可以附加到游戏对象中。

继承了MonoBehavior的类将不能通过new关键字进行实例化,只能通过挂载到游戏对象来获取到对应的类对象(因此脚本中的构造函数将不会有任何意义)。

继承已经继承了MonoBehavior的类时,同样也可以直接挂载到场景当中。

同一个脚本可以多次挂载,如果需要只能单次挂载的功能,需要在类定义前添加DisallowMultipleComponent属性。

不继承MonoBehavior脚本使用方法

不继承MonoBehavior的脚本无法挂载到场景中,但是他可以按照正常的类进行使用,通常会将数据类、工具单例类等等设置为不继承。

自定义脚本的执行顺序

我们可以通过点击脚本文件后在Inspector中点击Execution Order...打开自定义脚本运行设置面板:

也可以直接在Edit->Project Settings->Script Execution Order中进行设置,其中Default Time是所有未自定义顺序的脚本执行的时间。

脚本默认模板

在Unity中新建的脚本都会有一个如下的默认脚本结构,他的默认模板存储于Editor\Data\Resources\ScriptTemplates中,如果有需要可以按照需求进行更改。

相关推荐
UWA10 小时前
GPM 2.0 WebGL 监测能力扩容|覆盖 Unity/Cocos/LayaAir 多引擎微信 & 抖音小游戏
unity·微信·性能优化·小游戏·webgl
Behaviour11 小时前
Unity 手游网络同步技术
网络·unity·c#·游戏引擎
niuniudengdeng12 小时前
Unity手游APK去广告实战:华为渠道包反编译、广告拦截与“网络不佳“弹窗修复全记录
unity·游戏引擎
k4m7v2pz12 小时前
Godot 4 嵌入式试玩窗口尺寸与适配策略详解
编辑器·游戏引擎·godot·游戏开发·嵌入式运行
Behaviour1 天前
Unity UI循环列表UIScrollViewContent实现
ui·unity·c#·游戏引擎
_ZHOURUI_H_1 天前
Unity EasyECS:并不是所有字段都适合 SoA,Unity 项目中应该怎样拆数据
游戏·unity·性能优化·架构·游戏引擎
TO_ZRG2 天前
Unity 编辑器之 SettingsProvider、Hierarchy、Project、SearchField
java·unity·编辑器
yj爆裂鼓手2 天前
spine绑定骨骼运动工具&spine纹理压缩自动设置工具
游戏·unity
惊鸿醉2 天前
Unity 实战:用讯飞 WebAPI 做一个“说普通话、播方言“的语音程序
unity·c#·游戏引擎·语音识别
略略略咯咯2 天前
C#Unity
开发语言·unity·c#