我正在尝试构建一个可扩展的程序,用户可以在其中构建自己的着色器效果。
谷歌搜索让我走到了这一步;
class Test(ShaderEffect):
inputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty("Input", type(Test()), 0)
但我仍然得到错误;
TypeError:无法访问受保护的 会员 RegisterPixelShaderSamplerProperty 没有python的子类 ShaderEffect。
非常感谢任何帮助。
网上最好的资源我可以找到is linked here
答案 0 :(得分:0)
您需要使用Reflection来访问.NET类的受保护的memeber - 您没有可以直接访问此类成员的Python子类。
尝试这样的想法(我没有测试过):
inputPropertyType = ShaderEffect.GetType().GetMember(
'RegisterPixelShaderSamplerProperty',
BindingFlags.Instance | BindingFlags.NonPublic)
inputProperty = inputPropertyType.GetValue(ShaderEffect, None)
inputProperty("Input", type(Test()), 0)