Unity输入系统C#错误试图使用按钮按下与对象交互



好吧,我的ObjectInteraction脚本又出现了一些奇怪的问题。它目前被玩家用来将柱子推到一定距离。错误正在发生,我和帮助我的人都无法理解。因此,我使用的是2019年推出的InputSystem软件包,我只会将图片作为链接与脚本一起发布。

球员走到柱子前,把柱子向前推。第一次一切都很好。之后的任何时间都会弹出链接的错误消息。

我不能发布所有的链接,所以我把它们放进imgur相册。

处理InputSystem内容的Player脚本摘录:

https://i.stack.imgur.com/LhoM5.jpg

我收到的错误消息:

https://i.stack.imgur.com/X9KKO.jpg

ObjectInteraction脚本的摘录,该脚本在本例中处理移动:

https://i.stack.imgur.com/KyQLz.jpg

行动图:

https://i.stack.imgur.com/RnU70.jpg

脚本本身:

Player.cs

ObjectInteraction.cs

ObjectInteractionMiniColliders.cs

注意:ObjectInteractionMiniColliders.cs只是为了显示所涉及的所有文件,它几乎只是"告诉"支柱在被推动时应该朝哪个方向移动。以及当玩家不再在射程内时告诉它。

我非常渴望得到帮助。我不太确定到底发生了什么事情,这会让事情变得一团糟。

首先,我个人不会使用InputSystem的遗留版本,我只会使用更新的版本,这只是我的意见。其次,我不认为你已经在Unity编辑器中将public ObjectInteraction objectInteraction;设置为GameObject,如果它给你一个NullReferenceException的话。

我修复了它。

我不想让人觉得我来这里是在无聊地问问题,我们前天在这个问题上做了很长时间,但我解决了这个问题。

播放器输入组件被设置为在本应发送消息时调用统一事件。

请参阅此处的说明:https://gamedevbeginner.com/input-in-unity-made-easy-complete-guide-to-the-new-system/#player_input_component_send_messages

其次,没有设置objectInteraction是正确的。但是,它并没有像我想的那样发射两次,这就是问题所在,即使将其设置为发送消息,它也发射了三次。

我注意到,在成功施法后,我的施法仍然会发出失败的声音,尽管我有一次发出的嘘声本应取消施法命令。我们做了一个调试,只启动了两次,所以让我绊倒了,但它肯定启动了三次,我再次确信这是故意的。

需要有一种更好的方法(可能还有,我还没见过(,只让它燃烧一次,而不是三次。你并不总是需要它来做到这一点!

对于施法,我只是把它变成一个int,如果它是<2.对于推动支柱,我只是做了一个检查,以确保objectInteraction没有设置为";null">

我想指出的是,我在郊游中做的一些事情是错误的,但我可以解决这个问题。但它开始的调试显示出来,但没有结束。我得再四处看看我做错了什么!

最新更新