赞
踩
从灵魂、身体、行为三个层面来看,脚本(Script)为游戏注入了生动的元素。脚本代码并非独立运行的程序,它依赖于Unity引擎的运行环境,并需附加到特定对象上。在Unity脚本中,没有像传统程序中的"main"函数,而是用于更新游戏循环中的对象。Unity为脚本提供了API以便访问引擎功能,例如响应玩家输入、创建图形效果、控制物理行为、加载下一关卡以及处理逻辑和交互等。
脚本默认保存在资产(Assets)文件夹中,最佳实践是将其保存在“Script”文件夹下。创建脚本后,你将声明一个新的类,这个类将继承自MonoBehaviour。需要注意的是,脚本在运行时需要加载命名空间,就像引入"include"一样。类名应当是唯一的,且应与文件名匹配。在语法方面,每行代码都需要分号";"结尾,大括号"{}"必须前后匹配。
脚本的应用可以通过在Console窗口中打印文本来进行调试。在将脚本附加到对象时,你需要思考如何添加注释以及将其附加到哪个对象上。
Unity引擎的内部构建是使用本地的C/C++,但与之交互时使用了C#的包装器和开源.NET平台。脚本依赖于后端的执行,而Unity拥有两种脚本后端(默认情况下,Unity在各个平台上使用Mono后端):
如今,Unity只支持C#编程语言,它音译为“See Sharp”,是微软通用的编程语言。C#的含义是"C like Object Oriented Language",即“类似C的面向对象语言”,与Java语言竞争激烈。
C#是一种面向对象和面向组件的编程语言,基于类,它是强类型检查的语言,必须显式声明类型。
它继承了C家族语言(C/C++/Java)的许多原则:
面向对象编程概念:类/实例、公共/私有、继承
在面试中,经常会问到类和实例之间的区别,简而言之,类是宏观的,而实例是具体的。
Public可从外部访问的公共变量,如其他script / inspector;
Private从外部无法访问私有变量;
Public公共变量显示在inspector中,必须带有类型,用大写字母分隔;
Private私有变量不是在play期间,可以在检查器中调整公共变量,但这不会改变脚本中的默认值,大家可以想一想为什么?
“Static”(静态)变量/函数在所有实例中共享,像全局变量/函数
可以根据需求设定public或private,变量名称应以小写字母开头
最好是用有意义的词来命名,例如:苹果数量写为appleCount
声明类型,指定初始值。所有变量均为默认为零值
组件和脚本中初始值之间的差异
播放过程中的更改无法保持
在Unity中,使用"."来访问成员变量和函数,组件是GameObject的成员变量。在脚本附加到对象时,它可以访问其他组件和GameObject。一些常用的组件有:
*这一部分Unity面试时常考
函数按事件间歇调用,Unity将控制传递给一个函数,执行它,然后获取控制回位
函数名称应该以大写字母开头,带或不带变量列表
*初始化功能
(对每个对象都只调用一次)
*常规事件函数
*物理功能
·物理引擎报告物理事件,如碰撞,调用该对象脚本上的事件函数
*创建和销毁对象
可以在场景中创建恒定数量的对象,如player、treasure等
游戏过程中会创建和删除一些其他对象
使用“Instantiate(实例化)”创建现有对象的新副本prefab及其所有部件
使用“Destroy(销毁)”在帧更新或拍摄时间延迟后
A:为什么函数里要写Time.deltatime:即按1秒执行60*speed*▲t(≈1/fps)
Q:作用是与FPS消除,使得所有用户的电脑都是1秒执行同样内容,速度差不多。
脚本的事件按照特定顺序执行,这个顺序对于游戏开发至关重要。了解这个事件顺序可以帮助你更好地掌握脚本的使用。
以下是一个简要的脚本事件顺序流程图:
通过理解脚本事件的执行顺序,你可以更好地掌握Unity游戏开发中的脚本编程,为你的游戏增添更多的交互与创意。无论你是初学者还是有经验的开发者,脚本都是连接你与游戏世界的纽带,帮助你创造出令人惊叹的虚拟体验。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。