unity鼠标触碰物体改变颜色随机
时间: 2024-09-07 08:05:26 浏览: 48
Unity3D鼠标拾取物体2
要在Unity中实现鼠标触碰物体时改变其颜色为随机颜色,你可以使用C#脚本来监听Input.GetMouseButtonDown事件,并根据该事件处理器改变选中的游戏对象的颜色。以下是一个简单的示例:
```csharp
using UnityEngine;
using UnityEngine.UI;
public class ChangeColorOnTouch : MonoBehaviour
{
public GameObject targetObject; // 需要改变颜色的游戏对象
public Color[] colorPool; // 存放随机颜色的数组
private void Update()
{
if (Input.GetMouseButtonDown(0)) // 检查左键是否被点击
{
RaycastHit hit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit))
{
// 如果鼠标点击的是我们的目标对象或其子对象
if (hit.collider.gameObject == targetObject || hit.collider.gameObject.transform.IsAChildOf(targetObject.transform))
{
// 从colorPool随机选择一个颜色并应用到targetObject上
targetObject.GetComponent<Renderer>().material.color = colorPool[Random.Range(0, colorPool.Length)];
}
}
}
}
}
```
在这个例子中,你需要设置`targetObject`为你想让鼠标触碰改变颜色的对象,`colorPool`是一个包含了多个颜色的数组。当玩家点击屏幕时,程序会检查是否击中了目标对象及其子对象,如果是,则从颜色池中随机选取一种颜色应用于对象。
阅读全文