Unity 小技巧 - 指定拖拽赋值
假设有脚本A、B,均继承自MonoBehaviour,那么它们可以以组件的形式挂载于物体上,现在将它们分别挂在物体GameObjectA和GameObjectB上:
在B脚本中声明一个A变量,以public修饰符修饰,那么在B的Inspector面板上即可将挂载A组件的GameObjectA物体拖拽赋值:
using UnityEngine;
public class B : MonoBehaviour
{
public A a;
}
如果继续给GameObjectA挂载一个A组件,再在B的Inspector面板进行拖拽赋值,那么赋值的结果是第一个A组件还是第二个A组件?为了方便测试,我们在脚本A中声明一个string字符串类型变量description,同样以public修饰符修饰:
using UnityEngine;
public class A : MonoBehaviour
{
public string description;
}
在A的Inspector面板上分别给该变量赋值:
在脚本B中打印变量a的description值:
using UnityEngine;
public class B : MonoBehaviour
{
public A a;
private void Start()
{
Debug.Log(a.description);
}
}
可以发现打印的结果是第一个组件A的description值,说明当物体GameObjectA包含两个组件A时,将该物体拖拽给一个声明了A类型的变量的组件后,拖拽赋值的结果是GameObjectA物体挂载的第一个A组件。如果我们想要拖拽的目标是第二个组件A,该如何去实现?
首先要了解Inspector面板右上角锁的作用,点击它可以发现它有两个状态,打开和关闭:
它的作用是,当我们选中一个物体GameObjectA时,将其变为锁定状态,再在Hierarchy层级中选择其他物体时,该Inspector面板显示的仍然是GameObjectA的信息:
了解了锁的作用后,我们就可以实现指定拖拽赋值了,首先选中GameObjectA,锁定该Inspector面板,再在窗口标题处右键,通过Add Tab增加一个Inspector面板,选中物体GameObjectB,此时新的Inspector面板显示的为物体B的信息,之前锁定的Inspector面板显示的物体A的信息,这时即可将GameObjectA上的第二个A组件拖拽赋值到B组件上:
此时再运行程序,可以发现打印已经是我们想要的信息:
相关文章
- IDEA使用技巧之教你一招:隐藏指定文件/文件夹
- WordPress 技巧:给 WordPress 分配更多的内存
- 新手必知:Linux WiFi扫描现状与技巧(linuxwifi扫描)
- MongoDB指定查询字段的技巧(mongodb指定字段)
- 解决Oracle 更改目录技巧(oracle修改目录)
- 服务器Xshell快速连接Linux服务器的技巧(xshell连接linux)
- Oracle 实现高可用性配置:HA 节点设置技巧(oracleha节点)
- 25个字太短无法表达,以下是几个选择:1. Oracle学习笔记:我的经验分享 2. Oracle笔记:快速成为数据库专家 3. Oracle学习笔记:从入门到精通 4. Oracle数据库笔记:提高工作效率的方法 5. Oracle笔记:解决常见问题的技巧(oracle笔记)
- 据处理SQL Server行数据处理技巧分享(sqlserver的行数)
- MSSQL中随机获取数据的技巧(mssql+随机获取)
- 掌握MySQL显示表结构的命令技巧(mysql显示表结构命令)
- MySQL数据库详解,全面了解MySQL常用语法和技巧!(mysql大全)
- Oracle数据库的技巧:删除指定列(oracle删除某一列)
- Oracle操作技巧:快速删除表中指定列的方法(oracle删除某一列)
- Oracle数据库中内外连接实现数据查询的技巧(oracle内连接外连接)
- Redis之覆盖旧值技巧(redis覆盖旧值方法)
- Python高效编程技巧