使用Unity中的Material.Color属性控制Agent的颜色,以实现动态变换。示例代码如下:
public class AgentBehavior : MonoBehaviour
{
private Material mat;
private Color targetColor;
private float colorChangeDuration = 1f;
private float elapsed = 0f;
private void Start()
{
mat = GetComponent().material;
targetColor = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);
}
private void Update()
{
elapsed += Time.deltaTime;
if (elapsed >= colorChangeDuration)
{
targetColor = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f);
elapsed = 0f;
}
mat.color = Color.Lerp(mat.color, targetColor, elapsed/colorChangeDuration);
}
}
在这个示例中,每隔一段时间Agent的颜色就会随机变换一次。通过调整colorChangeDuration
属性可以控制颜色变换的速度。该脚本可以附加到Agent的GameObject上。
注意:在使用Material.Color属性时,如果有多个使用同一Material的GameObject,它们的颜色都会同时变化。如果需要实现单个GameObject颜色变化,需要为其创建一个单独的Material。