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中,如果有需要可以按照需求进行更改。

相关推荐
叶帆13 小时前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#
久数君14 小时前
AI三维建模工具“造形家”:地理场景三维化的高效解决方案
unity·glb·ai算法·ai三维建模工具·地图框选·造形家·城市建筑模型
会思考的猴子1 天前
Unity VFX 属性 Postion 和 TargetPostion
unity
hai3152475431 天前
九章编程法 · 猜数字游戏 (GW-BASIC 重构版) *
人工智能·microsoft·游戏引擎·游戏程序
心前阳光1 天前
Unity资源导入之自动化资源导入
unity·自动化·游戏引擎
心前阳光1 天前
Unity之2021.3.45f2c1发布安卓程序遇到的问题
android·unity·游戏引擎
纪纯1 天前
PicoVR Unity Integration SDK 3.4 常用交互API
unity·游戏引擎·vr·pico
龙智DevSecOps解决方案1 天前
3A 游戏优化技术栈:如何打通引擎级分析工具与 DevOps 持续集成管线?
unity·性能优化·游戏开发·技术美术·perforce·unrealengine
葛兰岱尔1 天前
从 SolidWorks 到 Three.js,从 Inventor 到 Unity——制造业CAD模型“几何-语义一体化“转换,不再是天方夜谭!
开发语言·javascript·unity
鼎艺创新科技2 天前
三维电子沙盘中OSGB倾斜摄影数据的加载与渲染
游戏引擎·cocos2d