Unity - 2D 移动平台育儿

Posted

技术标签:

【中文标题】Unity - 2D 移动平台育儿【英文标题】:Unity - 2D Moving platforms parenting 【发布时间】:2015-02-25 20:13:14 【问题描述】:

我正在为 2D 游戏中移动平台上的角色育儿问题而苦苦挣扎。

我正在使用 OnTriggerEnter2D() 来检测玩家何时踏上移动平台。它改变了他的父母到那个平台。 使用普通的移动平台(左右)一切正常,如果一个角色站在那个平台上,他会平行移动,他可以走路、跳跃等。 当我使用悬挂在与 HingeJoint2Ds 连接的两条绳索上的平台时出现问题。 玩家应该通过左右行走来摆动该平台。 使用键盘输入时一切正常,但使用触摸输入控制器时,当玩家不移动时,角色会停留在一个地方并且不会随着该平台移动。在层级面板中一切都是正确的,玩家是平台的孩子,平台在移动,但角色没有。

对于移动角色,我使用的是这个:(角色控制器的一部分)

float move = Input.GetAxis ("Horizontal”);
rigidbody2D.velocity = new Vector2 (move * maxSpeed, rigidbody2D.velocity.y);

键盘和触摸输入也是如此。不同之处仅在于“移动”变量的获取。 移动和摆动平台的解决方案也是相同的。 (层次结构、父对象、对撞机等)

我为此苦苦挣扎了几个小时,但我不知道可能出了什么问题。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您所说的“触摸输入控制器”是什么,它是一种触摸设备吗?如果是这样,你确定Input.GetAxis("Horizontal”) 在触摸设备上做了什么吗?它不会总是返回 0 吗?

您是否尝试过记录您的 move 值,或者将其复制到公共变量中以观察它在检查器中的演变?也许一个控制器和另一个控制器之间的值相差几个数量级,在这种情况下,您需要一个乘数。

【讨论】:

“触摸输入控制器”是我用于移动设备的角色控制器的一部分。在那种情况下,我不使用“Input.GetAxis(“Horizo​​ntal”),我只是在玩家按下步行按钮时将“移动”值设置为 1 或 -1。这就是错误。我将移动设置为 0没有按下步行按钮。这就是为什么角色即使站在移动平台上也不会移动的原因。我解决了这个问题,将“platform.rigidbody2D.velocity”添加到“character.velocity”。现在它工作正常。真的有助于记录“移动的价值。谢谢

以上是关于Unity - 2D 移动平台育儿的主要内容,如果未能解决你的问题,请参考以下文章

100个 Unity实用技能| 游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置

Unity3D 灵巧小知识点☀️ | Unity 移动物体到指定位置的几种方法精选快捷使用

Unity是啥?

Unity是啥?

Unity移动平台相关Android打包设置

如何评价cocos creator,与unity比的优劣势