使用c#,我如何设置浮动在我的发射属性

本文关键字:我的 属性 发射 设置 何设置 使用 | 更新日期: 2023-09-27 18:03:26

在Unity3D中,我试图将浮动设置在刹车灯材料的发射属性上-但我没有任何运气。

下面是我的c#代码:
using UnityEngine;
using System.Collections;
public class BrakeLights : MonoBehaviour {
    private Renderer Brakes;
    // Use this for initialization
    void Start () {
        Brakes = GetComponent<Renderer>();
        Brakes.material.shader = Shader.Find("Standard");
        Brakes.material.EnableKeyword("_EMISSION");
    }
    // Update is called once per frame
    void Update(){
        //Brake lights
        if(Input.GetKey(KeyCode.Space)){
            Brakes.material.SetFloat("_Emission", 1.0f);
            Debug.Log (Brakes.material.shader);
        }else{
            Brakes.material.SetFloat("_Emission", 0f);
            Debug.Log ("Brakes OFF");
        }
    }
}

我在这里错过了什么?我也没有得到控制台的错误,我的调试日志显示在运行时,当我按空格键。

谢谢你的帮助!

使用c#,我如何设置浮动在我的发射属性

我发现使用发射颜色成功,而不是为其强度设置浮动值。因此,例如,我将发射色设置为黑色,没有强度/发射,并指定红色(在我的情况下),使材料发出红色。

我也意识到我必须使用一个遗留着色器来工作。

下面是有效的代码:
using UnityEngine;
using System.Collections;
public class Intensity : MonoBehaviour {
    private Renderer rend;
    // Use this for initialization
    void Start () {
        rend = GetComponent<Renderer> ();
        rend.material.shader = Shader.Find ("Legacy Shaders/VertexLit");
        rend.material.SetColor("_Emission", Color.black);
    }
    // Update is called once per frame
    void Update () {
        if (Input.GetKey (KeyCode.Space)) {
            rend.material.SetColor ("_Emission", Color.red);
        } else {
            rend.material.SetColor ("_Emission", Color.black);
        }
    }
}