2016-04-23 86 views
-3

我想要使用按鈕(顏色)之前選擇的顏色來更改對象的顏色。在Unity中觸摸時更改對象的顏色

+0

哪一個,你有這樣的問題?檢測觸摸或更改顏色?什麼是對象? 3D,2D雪碧?將代碼添加到您的問題。付出一些努力! – Programmer

+0

無法檢測到哪個對象被觸摸 –

回答

1

這隻會告訴你一種改變物體顏色的方法。

 void OnMouseOver() 
{ 
     if (Input.GetMouseButtonDown(0)) 
     { 
      renderer.material.color = Color.blue; 
     } 
} 
+0

我想更改被觸摸對象的顏色。當我觸摸屏幕上的任何位置而不是對象時,您的代碼會更改顏色 –

+0

這是您要查找的內容。把它放在想要改變顏色的對象上。只要你點擊它,對象就會改變顏色。 –

+0

我試過這個。無論我觸摸屏幕,物體的顏色都在變化。我只想在物體上觸摸來改變顏色 –

0

添加組件BoxCollider反對調整BoxCollider使它一樣大的物體或一個大一點比對象 再次嘗試這樣的代碼:使用UnityEngine ;使用System.Collections的 ;

公共類ChangeCubeColor:MonoBehaviour {

private int clickCount = 0; 
private MeshRenderer render; 
private float red = 0.0f; 
private float green = 0.0f; 
private float blue = 0.0f; 
void Start() 
{ 
    render = GetComponent<MeshRenderer>(); 
} 
void OnMouseOver() 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     if (clickCount % 2 != 0) 
     { 
      render.material.color = Color.red; 
     } 
     else 
     { 
      Color color = new Color(red,green,blue); 
      render.material.color = color; 
      red += 0.1f; 
      blue += 0.2f; 
      green += 0.3f; 
     } 
     ++clickCount; 
    } 
} 

}

0
try like this: 
void OnGUI() 
{ 
    if(GUI.Button(new Rect(100,100,200,50),"Red")) 
    { 
     render.material.color = Color.red; 
    } 
    if(GUI.Button(new Rect(100,50,200,50),"Blue")) 
    { 
     render.material.color = Color.blue; 
    } 
    if(GUI.Button(new Rect(100,150,200,50),"Green")) 
    { 
     render.material.color = Color.green; 
    } 
}