Unity更改物體的material

zsdeus133發表於2018-07-23

如果想要改變物體的material而使原material不變,可以這樣

public void Initialize()
{
    // 例項化一個material再賦值
    var compassImage = GameObject.Find("CompassPanel(Clone)/Compass_Scale").GetComponent<Image>();
    m_CompassMat = Object.Instantiate(compassImage.material);
    compassImage.material = m_CompassMat;
}

protected override void OnUpdate()
{
    for (int i = 0; i < m_PlayerGroup.Length; i++)
    {
        // 更新指南針指標  0.5 是一個偏移 因為預設正南是0度
        float distance = (Camera.main.transform.eulerAngles.y % 360) * (1f / 360f) + 0.5f;
        m_CompassMat.SetFloat("_ScrollX", distance);
    }
}

相關文章