2016-04-23 3 views
-3

Я хочу изменить цвет объекта при его касании цветом, который я ранее выбрал Button (Цвет).Изменение цвета объекта при его касании Unity

+0

Какой один вы с проблемой делать? Обнаружение касания или изменение цвета? Что такое объект? 3D, 2D Sprite? Добавьте код к вашему вопросу. Приложите немного усилий! – 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; 
    } 
} 
Смежные вопросы