如果把某个物体设置成预制体,那么他所绑定的脚本里的public对象就无法从Sence里
的对象拖拽进来,这是问什么,
这时我想获取Canvas里的Text该怎么获取?
可以这样实现:
1 在预制体上挂上脚本,然后点击Inspector面板中的Apply按钮,注意图中标红处。
代码如下:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public Text textOfLabel;//这行是关键,定义成Text类型。
void Start()
{
Debug.Log (textOfLabel.text);
}
void Update() {
}
}
2 将Canvas中的Text拖入相应位置,注意图中标红处。
输出结果:
说明:编写完脚本后注意保存。
预制物是无法依赖与场景物体的,你可以在Awake中Find,或者用管理类初始化赋值,我一般都用第一种,缓存下来之后就可以了