C# 在尝试使用墙壁跳转C从墙壁上弹起时出现问题#
这是我的墙壁跳跃,效果很好,我甚至可以让角色在使用C# 在尝试使用墙壁跳转C从墙壁上弹起时出现问题#,c#,unity3d,2d,unity3d-2dtools,C#,Unity3d,2d,Unity3d 2dtools,这是我的墙壁跳跃,效果很好,我甚至可以让角色在使用SetHorizontalForce(10)从左侧墙壁上跳下时从墙壁上稍微反弹回来。所以我遇到的问题是当我把SetHorizontalForce(-10)放进去时要从右侧墙壁反弹,它使角色无法再爬上墙壁,而是从墙壁反弹回来,但不会获得更多的高度。这是SetHorizontalForce(-10)以某种方式影响角色的y轴?还是完全发生了别的事情 public void WallJump() { if (State.HasCollisi
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:这就是我的速度处理方式。
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或其他方法\co例程?@Terrance添加了我的_velocityOh,这样您就不会使用unity2d刚体物理了?你在玩你自己的物理吗?