个人笔记-Unity-拖拽赋值和代码Find赋值的优缺点

149 阅读2分钟

拖拽赋值组件的优点:

1.简单直观:拖拽赋值组件只需要在编辑器中将组件拖拽到相应的变量上即可完成赋值,操作简单 直观。

2.可视化:拖拽赋值组件可以直接在编辑器中看到赋值的结果,方便查看和调试。

3.不受代码影响:拖拽赋值组件不受代码的影响,可以在编辑器中随时更改赋值的组件。

拖拽赋值组件的缺点:

1.不灵活:拖拽赋值组件只能在编辑器中进行赋值,无法在运行时动态赋值。

2.不易复用:拖拽赋值组件的赋值信息保存在场景或预制体中,如果需要复用该组件,需要重新进行赋值操作。

3.可能出错:拖拽赋值组件可能出现赋值错误的情况,例如拖拽错误的组件到变量上或者忘记进行赋值。

通过Find赋值组件的优点:

1.灵活性:通过Find赋值组件可以在运行时动态查找和赋值组件,可以根据需要动态获取不同的组件。

⒉可复用性:通过Find赋值组件可以在多个场景或预制体中复用同一个脚本,无需重新进行赋值操作。

3.可以动态创建:通过Find赋值组件可以在运行时动态创建组件,灵活性更高。

通过Find赋值组件的缺点:

1.性能开销:通过Find赋值组件需要在场景中进行查找,可能会带来一定的性能开销。

2.可能出错:通过Find赋值组件需要保证查找的组件存在,否则可能会出现空指针异常等错误。

3.可读性差:通过Find赋值组件可能会导致代码可读性变差,因为赋值的组件不是直接在代码中声明的,而是通过查找获取的。

补充: 只能使用 Find 进行查找的情况

  • Resources 动态加载并实例化的物体:拖动的方式只能在游戏编辑使用,而无法在游戏运行中使用。
  • static 修饰的变量:序列化用于将单个类序列化成二进制文件写入磁盘。因为 static 修饰的变量不属于类的实例所以无法序列化,所以它也不会显示在 Inspector 窗口。 另外值得一提的是 Unity 会将 public 变量序列化进场景文件,这也是为什么,我们脚本挂到了某个对象化后,我们就无法再脚本中的变量声明处修改 public 变量的值(private变量可以,因为没被序列化),而只能在 Inspector 窗口和函数中修改。