【发布时间】:2014-10-18 02:20:11
【问题描述】:
所以这是我的墙跳,效果很好,我什至可以使用SetHorizontalForce (10); 让角色从左墙跳下时稍微从墙上反弹回来。所以我遇到的问题是,当我将SetHorizontalForce (-10); 从右墙上反弹时,它使角色无法再爬上墙壁,而是从墙上反弹回来,但不再增加高度。这是SetHorizontalForce (-10); 以某种方式影响角色的y 轴吗?还是完全发生了其他事情?
public void WallJump()
{
if (State.HasCollisions) {
AddForce (new Vector2 (0, Parameters.JumpMagnitude));
_jumpIn = Parameters.JumpFrequency;
}
if (State.IsColidingLeft) {
SetHorizontalForce (10);
_dashIn = Para.DashFrequency;
}
else if (State.IsColidingRight){
SetHorizontalForce (-10);
_dashIn = Para.DashFrequency;
}
}
编辑:我被要求包含我的 SetHorizontalForce,所以这里是:
private Vector2 _velocity;
public void SetHorizontalForce(float x)
{
_velocity.x = x;
}
EDIT2:这就是我的 _velocity 的处理方式。
public void AddForce(Vector2 force)
{
_velocity = force;
}
public void SetForce(Vector2 force)
{
_velocity += force;
}
public void SetHorizontalForce(float x)
{
_velocity.x = x;
}
public void SetVerticalForce(float y)
{
_velocity.y = y;
}
【问题讨论】:
-
很奇怪,我在文档中找不到 SetHorizontalForce。那是你自己滚的东西吗?如果是的话,你能把它包括进来吗?
-
@Terrance 嘿伙计,我已经包含了我的 SetHorizontalForce,如果需要其他任何内容,请随时询问。感谢您的观看。
-
如果您也向我展示课程的其余部分,这也会有所帮助。您是否在某处将 _velocity 设置为游戏对象的实际速度?你也是在 FixedUpdate 或 Update 或其他一些方法\协程中调用 Wall Jump 吗?
-
@Terrance 添加了我的 _velocity
-
哦,那你不是在使用 unity2d 刚体物理吗?你在滚动你自己的物理吗?
标签: c# unity3d 2d unity3d-2dtools