相关疑难解决方法(0)

如何防止对手穿过对方?

我无法将游戏对象保留在包含的空间内.当它们到达边缘时,会有一些瞬间推回,但随后它们将穿过墙壁.

我在玩家上使用了Box Collider,在水平墙上使用了Mesh Collider.我对玩家角色(太空飞船)的问题表明该运动是由玩家控制的.并且使用射弹,它们是火,忘记以恒定速度移动.

这是我的播放器的移动代码.它正在FixedUpdate()函数中运行.

//Movement
    haxis = Input.GetAxis("Horizontal") * speed;
    vaxis = Input.GetAxis("Vertical") * speed;

    moveVector.x = haxis;
    moveVector.z = vaxis;

    if(moveVector.magnitude > 1)
    {
        moveVector.Normalize();
    }

    rigidbody.MovePosition(transform.position + moveVector * speed);
Run Code Online (Sandbox Code Playgroud)

通过子弹,它们被赋予速度并且引擎计算他们的电影.他们正在使用Box Collider并将其设置为Trigger,因此他们没有物理.但我用它OnTriggerEnter来摧毁它们.

//Projectiles without physics collisiions
function OnTriggerEnter (other : Collider) {
    Destroy(gameObject);
}
Run Code Online (Sandbox Code Playgroud)

击中网眼对撞墙时,有些但不是所有的子弹都会被摧毁.玩家有时会击中并停止,但通常可以通过它.如何每次都与网格对撞机碰撞?

unity-game-engine game-physics

17
推荐指数
3
解决办法
11万
查看次数

标签 统计

game-physics ×1

unity-game-engine ×1