普段、私はUnityのスクリプトをjavascriptで記述しているが
NGUIはC#アドオンなので
NGUIのコンポネントの値を変更するときはC#で書く必要があるみたい。
(javascriptでGetComponentなどしてもだめだった)
"You cant access UILabel from javascript since its a c# class"
http://forum.unity3d.com/threads/114833-NGUI-(Next-Gen-UI)-demo-amp-final-feedback-request/page39
C#で書いたらNGUIのUILabel.textが変更できた。
using UnityEngine;
using System.Collections;
public class c_sharp : MonoBehaviour {
private UILabel label;
void Start () {
label = GameObject.Find("Label_coin_num").GetComponent<UILabel>();
label.text = "text from code";
}
void Update () {
}
}
しかし、今度はJSとC#の共存が必要になる。
するとコードのコンパイル順番を意識する必要があって複雑になる。
共存は可能だが、揃えることが勧められている。
現在はJSからUILabelを扱える、こちらの方法に変更した。↓
特別なPluginフォルダにNGUIスクリプトを置くことで
そちらを先にコンパイルし、他のスクリプトから型を見えるようにしている。
UnityScript(JavaScript)からNGUIを使う
http://d.hatena.ne.jp/shinriyo/20120606/p2