在某篇博客下找到了GameObject 、gameObject 、 Transform 、transform的用法,关于transform的用法上篇博客是这么写的
using UnityEngine.UI;
2. void Update () {
3. transform.Find("Text").GetComponent<Text>().text = "射击数:"+sdshu;transform.Find("Text").GetComponent<Text>().text = "射击数:" + sdshu;
4. gameObject.GetComponent<Text>().text = "射弹数:" + sdshu;
5. }
后来上面的语句根本行不通,自己想了想,原因可能是我把脚本绑定在了Maincamera上了,这就造成了我在使用gameObject的时候其实是对相机本身这个实例化对象进行操作,Main camera的组件里面根本没有Text这个名字的组建,因此该脚本虽然能运行但是在Unity中会出错。
另外在这之前本人试了一下较早版本的uniyUI引用方式,代码如下:
1. using UnityEngine.UI;
void Update () {
gameObject.Find("Text").GetComponent<Text>().text="射击数:"+sdshu;
}
同样行不通,在gameObject后面的点,点不出来Find,而且因为虽然我用了using UnityEngine.UI,但GetComponent<UI.Text> 中的UI和UI后面的点点不出来Text,本人甚为疑惑,因为GUI可以直接用,我都不用使用头文件生命。瞬间感觉UNITY的版本改的乱七八糟的。
最后正确引用代码应该是:
2. GameObject.Find("jishu").GetComponent<Text>().text = "射弹数:" + sdshu;
以上都是一个刚刚接触Unity的小白自己认为的观点,不喜勿喷,另外期待C#脚本的大神们能出来指点指点,现在是只知其所以但不知其所以然,我将非常感谢,期待大牛!