我试图确定播放器什么时候停放,使用桌面播放器,下面描述的方法工作得很好,但是当编译到Android时,我不知道它是否被延迟了,但是它正在更新的bool很少是它应该是什么样子。
用于确定播放机是否接地的代码:
void OnTriggerEnter2D(Collider2D other) {
if (other.tag == "NormalGround") {
player.Grounded = true;
}
}
void OnTriggerExit2D(Collider2D other){
if (other.tag == "NormalGround") {
player.Grounded = false;
}
}在桌面上,通过将接地的var写到Update()上的文本框中,可以很好地工作,就像这里演示的那样:
https://www.youtube.com/watch?v=CV0h18dz1cg
但在Android上,几乎就像对撞机落后了一样:
在视频的末尾,您可以看到var只有在我跳过字符之后才会改变.(每个帧都会更新真正的假文本,因此不会在Jump()上更新
对撞机是这样设置的:
等级制度:

我用来做地面检查的方法:

平台/地面的设置方式:

1:触发器用于检测球员何时接地(在检验员中可见)
2:对撞机用来阻止玩家通过精灵坠落(而不是在检验员中)。
Jump()代码:
public void Jump ()
{
if (!(PlayerDoubleJumped) && (Grounded) || ((!(Grounded) && (!PlayerJumped)))) {
rb.velocity = new Vector2 (rb.velocity.x, JumpForce);
animator.Play ("JumpCycle");
PlayerJumped = true;
} else if (!(Grounded) && (!(PlayerDoubleJumped)) && (PlayerJumped)) {
rb.velocity = new Vector2 (rb.velocity.x, DoubleJumpForce);
animator.Play ("JumpCycle");
PlayerDoubleJumped = true;
}
}这就是我移动玩家的方式:
this.transform.rotation = Quaternion.Euler (new Vector3 (0, 0, 0)); rb.velocity = new Vector2 (RunningSpeed, rb.velocity.y);
Physics2D设置(默认):

我使用的是Unity5.5.0
有人知道这里有什么问题吗?
发布于 2017-09-09 18:29:30
可能的解决办法:
https://stackoverflow.com/questions/44642026
复制相似问题