在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");
}
}
}
我在这里缺少什么?我在控制台中也没有出现任何错误,当我按空格键时,我的调试日志会在运行时显示。
感谢您的帮助!
答案 0 :(得分:0)
我发现使用发光颜色成功,而不是为其强度设置浮点值。因此,例如,我将发光颜色设置为黑色,没有强度/发射,并指定红色(在我的情况下),使材料发红光。
我也意识到我必须使用传统着色器才能工作。
以下是有效的代码:
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);
}
}
}