我试图在平台顶部的圆圈上方弹出平铺,平台固定时没有问题,但是当激活平台移动的脚本时,平铺会使圆圈崩溃。
这是移动平台的脚本:
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
我不知道是什么问题。
请有人帮帮我吗
答案 0 :(得分:2)
您必须为移动的对撞机添加运动Rigidbody2D 。没有刚体的碰撞器被Unity视为静态碰撞器,不应该被移动。
物理引擎假定静态对撞机永远不会移动或改变,并且可以基于此假设进行有用的优化。因此,在游戏过程中不应禁用/启用,移动或缩放静态对撞机。如果您确实更改了静态对撞机,那么这将导致物理引擎进行额外的内部重新计算,从而导致性能大幅下降。更糟糕的是,这些变化有时会使对撞机处于未定义状态,从而产生错误的物理计算。例如,针对改变的静态对撞机的光线投射可能无法检测到它,或者在空间中的随机位置检测到它。