对于跳跃每次加3分的问题:以下提供一种解决方法:在PlayerController.cs中// 在 PlayerController 类中添加一个私有字段来记录当前所在的平台private GameO...
对于跳跃每次加3分的问题:
以下提供一种解决方法:
在PlayerController.cs中
// 在 PlayerController 类中添加一个私有字段来记录当前所在的平台
private GameObject currentPlatform;
private void Update()
{
//省略代码
//分数增加,如果跳跃到的平台和上一个平台不是同一个的话
if (isJumping && IsRayPlatform() && currentPlatform != null && currentPlatform != lastHitGo)
{
EventCenter.Broadcast(EventDefine.AddScore);
lastHitGo = currentPlatform;
}
//省略代码
}
//人物与平台进行碰撞检测
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Platform"))
{
isJumping = false;
currentPlatform = collision.gameObject;//记录当前平台
Vector3 currentPlatformPos = currentPlatform.transform.position;
nextPlatformLeft = currentPlatformPos + new Vector3(-vars.nextXPos, vars.nextYPos, 0);
nextPlatformRight = currentPlatformPos + new Vector3(vars.nextXPos, vars.nextYPos, 0);
}
}
以下提供一种解决方法:
在PlayerController.cs中
// 在 PlayerController 类中添加一个私有字段来记录当前所在的平台
private GameObject currentPlatform;
private void Update()
{
//省略代码
//分数增加,如果跳跃到的平台和上一个平台不是同一个的话
if (isJumping && IsRayPlatform() && currentPlatform != null && currentPlatform != lastHitGo)
{
EventCenter.Broadcast(EventDefine.AddScore);
lastHitGo = currentPlatform;
}
//省略代码
}
//人物与平台进行碰撞检测
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Platform"))
{
isJumping = false;
currentPlatform = collision.gameObject;//记录当前平台
Vector3 currentPlatformPos = currentPlatform.transform.position;
nextPlatformLeft = currentPlatformPos + new Vector3(-vars.nextXPos, vars.nextYPos, 0);
nextPlatformRight = currentPlatformPos + new Vector3(vars.nextXPos, vars.nextYPos, 0);
}
}