Unity脚本程序的开发

这是我对Unity脚本知识的查漏补缺,很多已经熟悉的知识就没有写。

Unity中C#脚本规范

继承自MonoBehavior类

Unity中所有挂载到游戏对象上的脚本中的类必须继承MonoBehavior类(直接或间接),MonoBehavior类中定义了各种回调方法(Start()、Update() …)。

类名必须匹配文件名

C#脚本中类名需要手动编写,并且类名必须和文件名相同,否则当脚本挂载到游戏对象时,控制台会报错

使用Awake或Start方法初始化

用于初始化脚本的代码必须置于Awake或Start方法中。Awake比Start运行更早,是在加载场景时运行。而Start方法是在第一次调用Update或FixedUpdate方法之前使用。

Unity脚本中协同程序(协程)有不同的语法规则

Unity中的协程必须是IEnumerator返回类型
yield用yield return替代

using System.Collections;
using System.Collections.Generic;
using UnityEngine;//导入系统包

public class NewBehaviourScript : MonoBehaviour //声明类
{
    private void Start()
    {
        StartCoroutine(SomeCoroutine());//启动协程
    }
    
    IEnumerator  SomeCoroutine()//C#协程
    {
        yield return 0;//等待一帧
        yield return new WaitForSeconds(2);//等待2s
    }
}

只有满足特定情况变量才能显示在属性面板中

只有序列化的成员变量才能显示在属性面板中,如果属性想在属性面板中显示,那么其必须是public类型

尽量避免构造函数

不要在构造函数中初始化任何变量,要用Awake和Start方法实现。因为Unity会自动调用构造函数,它或许会被预制体或未激活的游戏对象调用。

Unity中的单例模式
因为脚本文件继承MonoBehavior
单例模式使用构造函数可能会导致严重后果,会带来类似随机的空参数异常。
要实现单例模式就不能使用构造函数,而是使用Awake或Start方法。

事实上,没有必要在继承自MonoBehaviour的类的构造函数中写任何代码

如何在Unity脚本中使用单例模式

public static ItemMgr instance;
void Awake()
{
   instance=this;
}

调试

在Unity中,可以使用print()和Debug.Log()输出调试信息。但是print()只能在Mono的类中使用,所以一般情况下最好使用Debug.Log()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值