2016-06-11 14 views
1

私のスクリプトは3Dゲームオブジェクトでは動作しますが、Textコンポーネントでは動作しません。それをテキスト上で動作させるにはどうすればいいですか?私はあなたが助けてくれてありがとう。UIの色を変更するには

using UnityEngine; 
using System.Collections; 

public class Colors : MonoBehaviour 

{ 
public float timer = 0.0f; 
Renderer rd; 

void Start() 
{ 
    rd = gameObject.GetComponent<Renderer>(); 
} 


void Update() 
{ 
    timer += Time.deltaTime; 
    if (timer >= 2.0f)//change the float value here to change how long it takes to switch. 
    { 
     // pick a random color 
     Color newColor = new Color(Random.value, Random.value, Random.value, 1.0f); 
     // apply it on current object's material 
     rd.material.color = newColor; 

     timer = 0; 
    } 
} 

}

+0

質問をアップアップした方は、実際に質問が含まれているように編集してください(「助けてください」は質問ではありません)。 –

+0

このようにUpdate()を使用することはできません。単に** Invoke **を使用してタイマーを作成してください。それは簡単です。 – Fattie

+0

あなたは私を見せてくれますか?私はプログラミングの初心者です。 – OneARMINAS

答えて

0

UIテキストの、あなたはText.colorないRenderer.material.colorを使用しています。 Rendererは、Mesh Rendererが添付された3Dオブジェクトに使用されます。これをGameObjectに添付して、Textコンポーネントが接続されていることを確認してください。そうしないと、エラーが発生します。

public float timer = 0.0f; 
Text txt; 

void Start() 
{ 
    txt = gameObject.GetComponent<Text>(); 
} 


void Update() 
{ 
    timer += Time.deltaTime; 
    if (timer >= 2.0f)//change the float value here to change how long it takes to switch. 
    { 
     // pick a random color 
     Color newColor = new Color(Random.value, Random.value, Random.value, 1.0f); 
     // apply it on current object's material 
     txt.color = newColor; 

     timer = 0; 
    } 
} 

Hereは、あなたのためのUnityチュートリアルです。さらなる質問をする前に少なくとも1つのプロジェクトを行ってください。

関連する問題