gpt4 book ai didi

c# - 如何更改 Point Light 中 'Draw Halo' 的值 - Unity3D

转载 作者:行者123 更新时间:2023-11-30 20:33:01 24 4
gpt4 key购买 nike

我似乎无法在智能感知中找到 Draw Halo 属性。有没有办法以编程方式设置它的值?谢谢!

最佳答案

更新:

public Component AddComponent(string className); 

现已弃用并删除,因此不能再用于执行此操作。看一下我做的扩展方法,叫做AddComponentExt可用于执行此操作 here .

答案是使用:gameObject.AddComponentExt("Halo");


旧答案:

即使已经回答了这个问题,我认为其他遇到这个问题的人也会有用。

除了rutter's回答,

Halo不能像其他组件一样直接访问类

GetComponent 有两个重载功能:

public Component GetComponent(Type type);
public Component GetComponent(string type);

还有两个重载 AddComponent功能:

public Component AddComponent(Type componentType);
public Component AddComponent(string className);

你必须使用 GetComponentAddComponentstring参数不是 Type 的参数范围。

GetComponent("Halo");AddComponent("Halo"); 编译。

GetComponent<Halo>();AddComponent<Halo>();编译。

另外,需要使用反射来切换Halo通过启用/禁用它来打开和关闭它。

通过反射打开/关闭 Halo 的扩展方法:

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);
}
}

用法:

Light light = GameObject.Find("Point light").GetComponent<Light>();
light.drawHalo(true); //Extension function. pass true or false

注意:

确保附上 HaloLight在使用这个功能之前。选择您的灯光,然后转到组件 -> 效果 -> 光晕。您也可以使用 yourLight.AddComponent("Halo"); 从脚本中执行此操作.

关于c# - 如何更改 Point Light 中 'Draw Halo' 的值 - Unity3D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com