Unity中的C#编程 B站112-116
.NET dotent简介
Microsoft新一代多语言的开发平台,用于构建和运行应用程序
C#
Microsoft 专为.NET推出的高级语言
##Mono
NOvell公司支持在其他操作系统下开发.NET程序的框架
Unity借助Mono实现跨平台,核心是.NET Framework 框架
脚本是附加在游戏物体上用于定义游戏对象行为的指令代码,就是.cs的文本文件,也就是类文件。 附加到游戏物体中,定义游戏对象行为指令的代码。
Unity支持三种高级编程语言:
C#,javaScript和Boo Script
语法结构
using 命名空间(避免类的重名);
public class 类名:MonoBehaviour
{
void 方法名()
{
Debug.Log("显示调试信息");
print("本质就是Debug.Log方法");
}
}
- 文件名与类名必须一致(不一致就会导致编译失败)
- 写好的脚本必须附加到物品上才执行
- 添加到游戏物体的脚本类必须从MonoBehaviour类继承
在Unity中通过菜单设置修改默认的脚本编辑器:(Unity和vs没有连上的话可以修改这个)
Edit -> Preferences -> External Tools -> External Script Editor
脚本的生命周期
就是 Unity 脚本从唤醒到销毁的过程。也叫必然事件,也叫消息。
如果在编码过程中出现“不一致的行尾提示框”的话,直接点 “是” 就行了。
//序列化字段 作用:在编辑器中显示私有变量,想让别人看到,又不想让别人修改
[SerializeField]
private int a = 100;
//作用:在编辑器中隐藏字段,不希望你在编辑器里修改它,别人能够修改,但是又不想让别人看到他
[HideInInspector]
public int b;
//作用:设置范围
[Range(0,100)]
public int c;
不要在脚本里面写构造函数
-
Awake 唤醒: 当物体载入时立即调用一次;常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本 this.enable=true.
-
OnEnable 当可用: 每当脚本对象启用时调用
-
Start 开始:物体载入且脚本对象启用时被调用1次,常用于数据或者游戏逻辑初始化,执行时机晚于Awake
-
FixedUpdate 固定更新:脚本启用后,固定时间被调用,适用于游戏对象做物理操作,例如移动等。
↑设置更新频率: Edit -> Project Setting -> Time -> Fixed Timestep值,默认为0.02S
-
OnCollisionXXX碰撞: 当满足碰撞条件时调用。
-
OnTriggerXXX触发:当满足触发条件时调用。
-
Update 更新:脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关
-
lateUpdate 延迟更新:在Update函数被调用后,适用于跟随逻辑。
-
输入事件↓
-
OnMouseEnter 鼠标移入:鼠标移入到当前Collider时调用
-
OnMouseOver 鼠标经过:鼠标经过当前Collider时调用
-
OnMouseExit 鼠标离开:鼠标离开当前Collider时调用
-
OnMouseDown 鼠标按下:鼠标按下当前Collider时调用
-
OnMouseUp 鼠按抬起:鼠标在当前Collider上抬起时调用
-
场景渲染↓
-
OnBecameVisible 当可见: 当Mesh Renderer 在任何相机 可见时调用
-
OnBecameInvisible 当不可见:当Mesh Renderer 在任何相机上都不可见时调用
-
结束阶段↓
-
OnDisable 当不可用:对象变为不可用或附属游戏对象非激活状态时此函数被调用
-
OnDestory 当销毁:当脚本销毁或附属的游戏对象被销毁时被调用文章来源:https://www.toymoban.com/news/detail-419658.html
-
OnAppliacationQuit 当程序结束:应用程序退出时被调用文章来源地址https://www.toymoban.com/news/detail-419658.html
public class Demo01 : MonoBehaviour { // Start is called before the first frame update public int a = 100; public int A { get { return this.a; } set { this.a = value; } } //*************初始阶段*********** //Awake的执行时机:创建游戏对象,立即执行 永远是Awake先执行,Start后执行 //作用:初始化 private void Awake() { // Debug.Log("Awake--" + Time.time+this.name); } //Start的执行时机:创建游戏对象,脚本启用之后,才执行 //作用:初始化 private void Start() { Debug.Log("Start--" + Time.time+this.name); } //*************物理阶段************** //FixedUpdate固更新的执行时机:每隔固定时间执行一次。(时间可以修改) //适用性:适合对物体做物理操作(移动、旋转。。。。。),不会受到渲染的影响 private void FixedUpdate() {//渲染时间不固定(美珍渲染量不同、机器性能不同) Debug.Log(Time.time); } //Update执行时机:渲染帧执行.执行间隔不固定 //适用性:处理游戏逻辑 private void Upadate() { } }
到了这里,关于笔记_Unity中的C#编程_112-116的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!