Unity的物件可以加上Rigidbody讓物體具有剛性,並可以讓該物體導入物理特性。有了物理特性之後,就可以讓物體之間具有一些包括碰撞在內的行為表現。在碰撞的過程中,有些物體是可以表現出具有彈性的行為現象,以圓球物體為例,我們把它加上Rigidbody,然後再加上一個命名為Bounce的物理材料,如下所示:
上述的物理材料把它附加到該球體的Collider中,如下所示:
接著請寫入以下的程式碼,在此我們把它命名為OnHitChangeColor:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OnHitChangeColor : MonoBehaviour
{
private void OnCollisionEnter(Collision collision)
{
float r = UnityEngine.Random.Range(0f, 1f);
float g = UnityEngine.Random.Range(0f, 1f);
float b = UnityEngine.Random.Range(0f, 1f);
Color new_color = new Color(r, g, b);
GetComponent<Renderer>().material.color = new_color;
}
}
最後把這段程式碼附加到球體上,再次執行Unity應用程式,即可看到球體每次彈跳時,都會改變自己的顏色。執行結果如下所示: