unity的一个问题求解答!!!!!!!!!!!!!!!!!!!!!!!!!!

如果把某个物体设置成预制体,那么他所绑定的脚本里的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,或者用管理类初始化赋值,我一般都用第一种,缓存下来之后就可以了