Unity

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

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s