为什么Unity脚本文件名需要和类名相同?

文章揭示了Unity中脚本命名与类名的关系并非严格绑定,即使脚本为空,只要文件名对应类名,仍可正常挂载到游戏对象上。通过实例说明,即使所有代码集中在一个脚本中,多个空脚本文件仍能工作,强调Unity依据文件名寻找类。这种做法虽非必需,但有助于避免找不到匹配类的问题。
摘要由CSDN通过智能技术生成

做Unity开发的朋友们基本都知道一个常识,就是Unity脚本的名字要和里面的类名相同。

其实这只是个通用做法,并不是必须的。

在偶然中,我发现一个现象。(不想看的可以直接跳过)我在Unity中添加了一个插件,我要修改一些代码,但是我不想直接在插件的脚本里改,想通过继承或者其他方式写自己的脚本。但是有一个脚本A实在绕不开,我就复制了这个脚本A到我自己的文件夹里面,然后把原来的脚本A里面全部注释掉了。然后我想,既然旧的脚本里面已经空了,那我在调试场景里挂载的脚本就要挂新的脚本了,结果旧的脚本依然挂载场景的对象上,也没有报错,试着运行了一下也没问题。点击定位脚本位置,还是旧的那个空了的脚本,我就凌乱了,空的脚本怎么还能用?我在新的脚本中加了个Awake输出,运行竟然真的执行了!!!我把新的脚本的类注释掉了,结果报错了。

结论:Unity中要往节点上挂载的脚本,必须要有一个名字相同的继承了MonoBehaviour的类,而这个类不是必须要写在这个脚本里。Unity是根据脚本文件名来“寻找”同名的类。

举个例子:

1.创建“A.cs”、“B.cs”、“C.cs”、“D.cs”、“我最帅.cs”等五个脚本;

2.然后把“A.cs”、“B.cs”、“C.cs”、“D.cs”里面的代码全都剪切到“我最帅.cs”脚本里;

3.结果“A.cs”、“B.cs”、“C.cs”、“D.cs”里面都是空的,“我最帅.cs”里面有五个类。这五个脚本都可以正常挂载到游戏对象上,使用起来和那几个类写在自己脚本里面效果一样的。

而之所以有“脚本的名字要和里面的类名相同”这样的常识,还是用起来方便,防止出现“找不到和脚本名同名的类”这样的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值