C# 如何更改点光源内部“绘制光晕”的值-Unity3D
我似乎找不到智能意义上的Draw Halo属性。有没有办法以编程方式设置其值?谢谢 光环是一个单独的组件 向灯光添加光晕的步骤:AddComponent 访问附着到灯光的光晕的步骤:GetComponent inspector中的Draw Halo复选框有点模糊-它创建了一个Halo组件,然后该组件从层次视图中隐藏,层次视图是带骨头的,但从Unity的旧版本中保留下来。更新: 现已弃用并删除,因此无法再使用它来执行此操作。看一看我做的扩展方法,名为addComponentText,可以用来实现这一点 答案是使用:gameObject.AddComponentExtHalo 旧答案: 尽管这个问题已经得到了回答,但我认为其他遇到这个问题的人会很有用 除了回答, 不能像其他组件一样直接访问Halo类 GetComponent函数有两个重载:C# 如何更改点光源内部“绘制光晕”的值-Unity3D,c#,unity3d,light,C#,Unity3d,Light,我似乎找不到智能意义上的Draw Halo属性。有没有办法以编程方式设置其值?谢谢 光环是一个单独的组件 向灯光添加光晕的步骤:AddComponent 访问附着到灯光的光晕的步骤:GetComponent inspector中的Draw Halo复选框有点模糊-它创建了一个Halo组件,然后该组件从层次视图中隐藏,层次视图是带骨头的,但从Unity的旧版本中保留下来。更新: 现已弃用并删除,因此无法再使用它来执行此操作。看一看我做的扩展方法,名为addComponentText,可以用来实现这
public Component GetComponent(Type type);
public Component GetComponent(string type);
public Component AddComponent(Type componentType);
public Component AddComponent(string className);
AddComponent函数有两个重载:
public Component GetComponent(Type type);
public Component GetComponent(string type);
public Component AddComponent(Type componentType);
public Component AddComponent(string className);
必须将GetComponent和AddComponent与string参数一起使用,而不是与Type参数一起使用
GetComponentHalo;添加成分晕;将编译
GetComponent;和添加组件;不会编译
此外,还需要使用反射通过启用/禁用光晕来打开和关闭光晕
使用反射打开/关闭光晕的扩展方法:
public static class ExtensionMethod
{
public static void drawHalo(this Light light, bool value)
{
//Get Halo Component
object halo = light.GetComponent("Halo");
//Get Enable Halo property
var haloInfo = halo.GetType().GetProperty("enabled");
//Enable/Disable Halo
haloInfo.SetValue(halo, value, null);
}
}
用法:
注:
使用此功能前,请确保将光晕附加到灯光上。
选择灯光,然后转到组件->效果->光晕。您还可以使用yourLight.AddComponentHalo;从脚本执行此操作 谢谢。这很有帮助:谢谢!我现在用这个。我差点就放弃了。很高兴你发现它很有用。