【问题标题】:unity2d button collider collide with border when character movesunity2d 按钮碰撞器在角色移动时与边框发生碰撞
【发布时间】:2017-03-02 12:38:11
【问题描述】:

我制作了一个在游戏过程中可点击的按钮。由于我希望按钮在主摄像机中具有固定位置,因此我制作了主摄像机和玩家游戏对象的按钮子项,以便摄像机在跳跃或移动时跟随角色,一切正常,但还有一个边界碰撞器这将防止角色移出游戏区域。但是,打算使按钮可点击的按钮的碰撞器也会与边框发生碰撞,这将阻止角色向右移动。如果我们将按钮的碰撞器设置为触发器,那么似乎我在屏幕上单击鼠标的任何地方都会触发按钮,这不是我想要的。

我知道也许我可以通过检查碰撞的对象是按钮还是角色来防止这种情况发生,但是有更好的方法吗?谢谢。

【问题讨论】:

  • 所以我理解的按钮与相机的位置是固定的,它总是在屏幕上的同一个位置?
  • 是的,@IgnacioAlorre 这就是我的意思

标签: unity3d


【解决方案1】:

对于 2D 平台游戏,我会在“地图”上的画布中添加 2D 用户界面(您拥有游戏对象的图层,如角色、平台、敌人......)。因此按钮将始终位于屏幕的同一位置,并且永远不会与游戏的任何游戏对象发生碰撞。

您可以从这里获得一些想法:https://unity3d.com/learn/tutorials/topics/user-interface-ui/ui-events-and-event-triggers

【讨论】:

  • 感谢您的回答,但是当相机移动时,该层会粘在相机上吗?
  • 是的,实际上它会覆盖整个屏幕,它不会与相机链接。该选项也适用于 3D 游戏。例如,在一个角色在地图上移动的 FPS 中,您可以添加此画布以显示以下信息:生命数量、子弹、生命...您可以在本教程中了解他们如何使用它:unity3d.com/learn/tutorials/projects/survival-shooter/…
  • @armnostrong 这个解决方案适合您还是我们应该尝试寻找其他解决方案?我确定还有其他选择,但我认为这是最好的选择。
  • hmm... 我正在尝试这个,在尝试这个时我发现包含 ui 按钮的画布比相机包含的游戏区域大得多。不确定 Unity3d 单元与真实像素的关系。感谢您的回答,尝试后会接受。
  • 别担心,它只是有不同的比例,所以更容易区分。无论它在场景中看起来有多大,一旦您运行游戏,画布就会与您的屏幕尺寸相匹配。
【解决方案2】:

尝试在 Unity 中使用新 UI 可能会解决您的问题:

https://unity3d.com/learn/tutorials/topics/user-interface-ui/ui-button

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 2022-06-29
    相关资源
    最近更新 更多