unity当玩家碰到目标物体时,目标物体闪烁,离开目标物体时目标物体不闪烁
时间: 2023-05-27 09:01:14 浏览: 93
Unity3D实现物体闪烁效果
要实现这个功能,你可以在目标物体上添加一个脚本,让它能够监听碰撞事件。当玩家与目标物体发生碰撞时,在脚本中开启目标物体的闪烁效果;当玩家离开目标物体时,关闭闪烁效果。
以下是可能的实现方案:
1. 添加一个脚本TargetObjectController到目标物体上。
```csharp
public class TargetObjectController : MonoBehaviour
{
// 目标物体的材质
private Material material;
// 目标物体的默认颜色
private Color defaultColor;
// 碰撞事件监听器
private void OnCollisionEnter(Collision other)
{
// 如果碰撞的是玩家
if (other.gameObject.CompareTag("Player"))
{
// 开启闪烁效果
StartCoroutine(Blink());
}
}
// 离开碰撞事件监听器
private void OnCollisionExit(Collision other)
{
// 如果离开的是玩家
if (other.gameObject.CompareTag("Player"))
{
// 停止闪烁效果
StopCoroutine("Blink");
// 将目标物体的颜色还原为默认颜色
material.color = defaultColor;
}
}
// 闪烁效果
private IEnumerator Blink()
{
while (true)
{
// 将目标物体的颜色设置为透明色
material.color = Color.clear;
yield return new WaitForSeconds(0.5f);
// 将目标物体的颜色还原为默认颜色
material.color = defaultColor;
yield return new WaitForSeconds(0.5f);
}
}
// 初始化
private void Start()
{
// 获取目标物体的材质
material = GetComponent<Renderer>().material;
// 获取目标物体的默认颜色
defaultColor = material.color;
}
}
```
2. 给目标物体设置一个材质,可以让它能够改变颜色。
3. 现在,当玩家与目标物体碰撞时,目标物体会开始闪烁;当玩家离开目标物体时,目标物体会停止闪烁。你可以根据你的需求调整闪烁效果的间隔、颜色、持续时间等参数。
阅读全文