C# 打开值切换已更改没有可用的功能
下面是关于Unity十六进制贴图的教程,可以在这里找到: 我已经创建了一个类,该类采用hexgrid并允许我设置给定瓷砖的颜色。我有一个公共方法C# 打开值切换已更改没有可用的功能,c#,unity3d,C#,Unity3d,下面是关于Unity十六进制贴图的教程,可以在这里找到: 我已经创建了一个类,该类采用hexgrid并允许我设置给定瓷砖的颜色。我有一个公共方法SelectColor(int-index)来选择颜色 为了选择颜色,我有一个带有4个切换的面板,分配给一个切换组 结构如下所示: 当我尝试为每个切换设置OnValueChanged方法时,问题就出现了。没有可供选择的选项,甚至没有可访问的其他对象 这就是我所拥有的一切: 关于如何解决这个问题有什么想法吗 编辑(11月4日): 我已将方法的签名更新
SelectColor(int-index)
来选择颜色
为了选择颜色,我有一个带有4个切换的面板,分配给一个切换组
结构如下所示:
当我尝试为每个切换设置OnValueChanged方法时,问题就出现了。没有可供选择的选项,甚至没有可访问的其他对象
这就是我所拥有的一切:
关于如何解决这个问题有什么想法吗
编辑(11月4日):
我已将方法的签名更新为SelectColorZero()
,以测试无参数函数是否会产生影响
事实并非如此
除了MonoScript.name
编辑(11月5日):
这不是错误,这是用户错误。请参阅下面的答案。您是否有来自其他脚本的编译错误?如果是这样,unity将无法编译脚本,并且在按钮上看不到您的函数 你可以在脚本中找到你的按钮 作为 并通过脚本附加onclick方法
greenButton.onclick.AddListener(Functionname);
您是否有来自其他脚本的编译错误?如果是这样,unity将无法编译脚本,并且在按钮上看不到您的函数 你可以在脚本中找到你的按钮 作为 并通过脚本附加onclick方法
greenButton.onclick.AddListener(Functionname);
我使用的对象是: 这是不正确的,请注意类型:
Mono-Script
我想要的是场景中的对象,在场景选项卡中,如下所示:
现在我可以设置我的方法:
它就像一个符咒:)我用这个作为我的对象: 这是不正确的,请注意类型:
Mono-Script
我想要的是场景中的对象,在场景选项卡中,如下所示:
现在我可以设置我的方法:
它的工作原理就像一个符咒:)方法签名需要匹配切换所需的签名,一个布尔值作为参数。您还需要检查您的实现,因为索引已经不存在了。@Everts实际上这看起来像个bug。。到目前为止,您可以使用任何不带参数的
void
方法,也可以使用一个简单类型的参数,例如带静态值的int
float
string
bool
。您的意思可能是动态
侦听器,其中签名必须与相应的UnityEvent
中的一个匹配最坏情况:只需为每种颜色减少一个参数void方法。。通常不是您应该习惯的,但在这种简单的情况下,它至少是一个热修复;)我假设您的hexmappeditor
脚本附加到hexmappeditor
对象,并且该对象就是您在UnityEvent框中引用的对象?@Immersive您几乎击中了要害。我使用的是AssetHexMapEditor
,而我本应该使用场景HexMapEditor
的时候,方法签名需要与切换所需的签名匹配,一个布尔值作为参数。您还需要检查您的实现,因为索引已经不存在了。@Everts实际上这看起来像个bug。。到目前为止,您可以使用任何不带参数的void
方法,也可以使用一个简单类型的参数,例如带静态值的int
float
string
bool
。您的意思可能是动态
侦听器,其中签名必须与相应的UnityEvent
中的一个匹配最坏情况:只需为每种颜色减少一个参数void方法。。通常不是您应该习惯的,但在这种简单的情况下,它至少是一个热修复;)我假设您的hexmappeditor
脚本附加到hexmappeditor
对象,并且该对象就是您在UnityEvent框中引用的对象?@Immersive您几乎击中了要害。我当时正在使用AssetHexMapEditor
,而我本应该使用场景HexMapEditor