任何人都可以在C#中为我提供帮助,为2D平台游戏创建一个平台,我可以跳过平台,从平台跌落,站在平台上作为稳定的土地?我环顾四周,似乎找不到任何有用的东西。
答案 0 :(得分:0)
如果您的游戏非常简单(例如,如果您的平台是平坦的),那么当玩家位于平台下方时,您可以非常轻松地禁用Collider。
如果您需要其他物体站在平台上,您可以使用以下两种方法控制碰撞矩阵:IgnoreCollision和IgnoreLayerCollision。
将此组件附加到每个平台:
[RequireComponent(typeof(Collider))]
public class ColliderActivator : MonoBehaviour
{
public GameObject player;
new Collider collider;
Collider playerCollider;
void Awake()
{
collider = GetComponent<Collider>();
playerCollider = player.GetComponent<Collider>();
}
bool wasPlayerAbove = false;
void Update()
{
bool isPlayerAbove = player.transform.position.y - transform.position.y >= 0;
// This check is only to reduce calls to the physics system
if(wasPlayerAbove != isPlayerAbove){
wasPlayerAbove = isPlayerAbove;
Physics.IgnoreCollision(collider, playerCollider, !isPlayerAbove);
}
}
}