从我刚开始学习Unity的时候,要在脚本中取得某个物体的引用时候,无非就一个方法,就是在Inspector面板中拖拖拖。当然这种方法对于新手入门来说再好不过了,也很容易理解。
下面这种方法是把需要的物体都拖拽到一个Asset文件中,再在代码中加载这个Asset文件。比在每个脚本中都拖拽的方法更加简洁好用。
ManagerVars
1、新建一个脚本ManagerVars
[CreateAssetMenu(menuName = "CreateManagerVarsContainer")]
public class ManagerVars : ScriptableObject
{
public GameObject go1;
public GameObject go2;
public GameObject go3;
}
2、在Unity的Assets菜单中创建出这个Asset文件
这时候在这个脚本中public的游戏物体都可以在Asset文件中赋值了。
3、在脚本中加载这个Asset文件,用来获取所有赋值的游戏物体。
[CreateAssetMenu(menuName = "CreateManagerVarsContainer")]
public class ManagerVars : ScriptableObject
{
public static ManagerVars GetManagerVars()
{
return Resources.Load<ManagerVars>("ManagerVarsContainer");
}
public GameObject go1;
public GameObject go2;
public GameObject go3;
}
4、使用
public class Test : MonoBehaviour
{
private ManagerVars vars;
private GameObject cube;
private void Awake()
{
vars = ManagerVars.GetManagerVars();
}
void Update()
{
cube = vars.cube1;
}
}