C#脚本基本规则

一、创建规则

1.不在VS中创建脚本了

2.可以放在Assets文件夹下的任何位置(建议同一文件夹管理)

3.类名和文件名必须一致,不然不能挂载(因为反射机制创建对象,会通过文件名去找Type)

4.建议不要使用中文名命名

5.没有特殊需求不用管命名空间

6.创建的脚本默认继承MonoBehavior

二、MonoBehavior基类

1.创建的脚本默认都继承MonoBehavior,继承了它才能挂在在GameObject上

2.继承了MonoBehavior的脚本不能new,只能挂!

3.继承了MonoBehavior的脚本不要去屑构造函数,因为我们不会去new它,写构造函数没有任何意义

4.继承了MonoBehavior的脚本可以在一个对象上挂多个(如果没有加DisallowMultipleComponent特性)

5.继承MonoBehavior的类也可以再次被继承,遵循面向对象继承多态的规则

三、不继承MonoBehavior的类

1.不继承MonoBehavior的类,不能挂载在GameObject上

2.不继承MonoBehavior的类,想怎么写就怎么写,如果要使用就自己new

3.不继承MonoBehavior的类,一般是单例模式的类(用于管理模块)或者数据结构类(用于存储数据)

4.不继承MonoBehavior的类,不用保留默认出现的几个函数

四、默认脚本内容

Editor/Data/Resources/ScriptTemplates

补充:

我们要知道,虽然建议大家不在继承MonoBehavior的类中写构造函数。
但是不意味着我们不能写,当我们在继承MonoBehavior的类中写无参构造函数时,你会发现在编辑模式下或者运行后,只要该脚本挂载在场景中,那么该无参构造函数是会被自动执行的。
因为Unity的工作原理中提到的反射机制,Unity实际上通过反射帮助我们实例化了该脚本对象,既然要实例化那么肯定是需要new的,只不过Unity中不需要我们自己new继承了MonoBehavior的类,只要挂载后Unity帮助我们做了这件事。

那么为什么不建议大家写构造函数呢?
1.Unity的规则就是,继承MonoBehavior的脚本不能new只能挂载
2.生命周期函数的Awake是类似构造函数的存在,当对象出生就会自动调用
3.写构造函数反而在结构上会破坏Unity设计上的规范

总结:
如果继承MonoBehavior的脚本想要进行初始化相关,可以在Awake或者Start中进行,搞清这两个生命周期函数的执行时机,根据需求选择在哪里进行初始化。
切记!!继承MonoBehavior的脚本不要new,不要new,不要new!!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不背完3500个考研英语词汇不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值