[英]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.