繁体   English   中英

Unity3D Collider2D不会与翻译的Collider2D发生碰撞

[英]Unity3D Collider2D don't collide with translated Collider2D

我正在尝试弹跳平台上方圆圈上方的磁贴,固定平台时没有问题,但是当激活使平台移动的脚本时,磁贴会破坏圆圈。

描述问题的草图

检查器设置

这是用于移动平台的脚本:

using UnityEngine;
using System.Collections;

public class PlatformMoveH : MonoBehaviour {

    public float min;
    public float max;
    public float speed;
    public float sens;

    void Start(){
        sens *= speed;
    }

    void Update () {
        if (transform.localPosition.x > max) {
            sens = -speed;
        } else if (transform.localPosition.x < min){
            sens = speed;
        }
        transform.Translate (sens * Time.deltaTime, 0, 0);
    }
}

我无法在此处添加图片,但在统一答案中,您可以使用图片更好地理解问题

http://answers.unity3d.com/questions/1009619/collider2d-and-translate-problem.html

我不知道是什么问题。
有人可以帮我吗

您必须将运动学的Rigidbody2D添加到运动的对撞机中。 没有刚体的碰撞器被Unity视为静态碰撞器,切勿移动。

官方文档中

物理引擎假设静态对撞机永远不会移动或改变,并且可以基于此假设进行有用的优化。 因此,在游戏过程中不应禁用/启用,移动或缩放静态对撞机。 如果您确实更改了静态对撞机,则这将导致物理引擎进行额外的内部重新计算,从而导致性能大幅下降。 更糟糕的是,这些更改有时会使对撞机处于不确定的状态,从而产生错误的物理计算。 例如,针对更改后的“静态对撞机”的射线广播可能无法检测到它,或者无法在空间中的随机位置检测到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM