角色透明

using UnityEngine;
using System.Collections;
using asset;

public class alphaTest : MonoBehaviour {

    // Use this for initialization
    private SkinnedMeshRenderer _renderer;
    Shader _sh;
    void Start () {
        _renderer = GetComponent<SkinnedMeshRenderer>();
        _sh = _renderer.material.shader;
    }
    
    // Update is called once per frame
    void Update () {
            if(Input.GetMouseButtonDown(1))
            {
                //_renderer.material.shader = _sh;
                _renderer.material.shader = Shader.Find("Mobile/Unlit (Supports Lightmap)");
            }
            if (Input.GetMouseButtonDown(0))
            {
                _renderer.material.shader = Shader.Find("Transparent/Diffuse");

                Color col = _renderer.material.color;
                col.a = 0.5f;
                _renderer.material.color = col;
            }
    }
}

有些Material确实没有Color属性.

选取材质球Shader的时候一定要看是否可以在监视面板中修改颜色属性.如果可以修改,基本上都可以用renderer.material.color = 颜色; 修改.

等同于 renderer.material.SetColor("_Color",颜色);

有些不能直接通过面板调试赋值修改的,就没法更改颜色.

有些获取颜色的时候报错说找不到"_Color"定义,但是可以在检视面板中更改材质球颜色,如下图:

你可以通过renderer.material.SetColor("_TintColor",颜色);来修改.

第一个参数是指定要修改的变量名.根据左下角的TintColor决定应该是什么字符串.前面加上一个英文下划线.

原文地址:https://www.cnblogs.com/wonderKK/p/4209736.html