【发布时间】:2016-04-23 09:39:05
【问题描述】:
我想改变对象触摸时的颜色,使用我之前通过 Button(Color) 选择的颜色。
【问题讨论】:
-
你在做哪一个有问题?检测触摸或改变颜色?什么是对象? 3D,2D精灵?将代码添加到您的问题中。努力吧!
-
无法检测到哪个对象被触摸
我想改变对象触摸时的颜色,使用我之前通过 Button(Color) 选择的颜色。
【问题讨论】:
这只会向您展示一种更改对象颜色的方法。
void OnMouseOver()
{
if (Input.GetMouseButtonDown(0))
{
renderer.material.color = Color.blue;
}
}
【讨论】:
添加组件 BoxCollider 到对象 resize 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;
}
}
}
【讨论】:
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;
}
}
【讨论】: