Unity碰撞之後隨機變色程式

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應用程式,即可看到球體每次彈跳時,都會改變自己的顏色。執行結果如下所示:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *