使用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");
}
}
}
我在这里错过了什么?我也没有得到控制台的错误,我的调试日志显示在运行时,当我按空格键。
谢谢你的帮助!
我发现使用发射颜色成功,而不是为其强度设置浮动值。因此,例如,我将发射色设置为黑色,没有强度/发射,并指定红色(在我的情况下),使材料发出红色。
我也意识到我必须使用一个遗留着色器来工作。
下面是有效的代码: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);
}
}
}