首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当玩家死亡时,它是减去2颗心,而不是1颗心。我能做什么?

当玩家死亡时,它是减去2颗心,而不是1颗心。我能做什么?
EN

Stack Overflow用户
提问于 2021-09-08 21:56:03
回答 1查看 72关注 0票数 0

当玩家死亡时,它是减去2颗心,而不是1颗心。玩家有5颗心,我放了一个调试日志,当他死一次时显示“43”,然后显示“21”和等等。这是我的脚本:如果是生命管理器

代码语言:javascript
复制
void Awake()
{
    instance = this;
}

void Start()
{
    livesTxt.text = "Lives - " + playerLives.ToString();
}

public void Lives()
{
    playerLives -= 1;
    Debug.Log(playerLives);
    livesTxt.text = "Lives - " + playerLives.ToString();
}

在这里它运行脚本

代码语言:javascript
复制
public void OnTriggerEnter(Collider other)
{
    if(other.gameObject.tag == "Water")
    {
        
        Vector3 randomPosition = new Vector3(Random.Range(minX, maxX), Random.Range(minY, maxY), Random.Range(minZ, maxZ));
        player.transform.position = randomPosition;
        LivesScore.instance.Lives();
    }
}

我怎么能减一颗心呢?

EN

回答 1

Stack Overflow用户

发布于 2021-09-09 06:24:35

OnTriggerEnter()方法似乎被调用了两次。我认为可能是一个解决方案。

简单地说:如果你使用的是球体或胶囊对撞机,它可以同时用两点触碰触发对撞机。这可以通过使用布尔检查来修正。

(直接从连系职位取走)

代码语言:javascript
复制
void OnTriggerEnter (Collider hitObject)
{
    if(isColliding) return;
    isColliding = true;
    // Rest of the code
}

void Update(){
    isColliding = false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69110079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档