Visual Studio 我在团结赛中多得一分,我不知道为什么

mi7gmzs6  于 2023-05-18  发布在  其他
关注(0)|答案(2)|浏览(186)

在Unity项目中,当我使用OnCollisionEnter函数时,甚至我的对象(播放器)保持静止,我得到了一个分数,这是我的脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Scorer : MonoBehaviour
{
    private void OnCollisionEnter(Collision other)
    {
        Debug.Log("You've bumped into a thing this many times: ");
    }
}

这是我的沙沙声

当我进入播放模式时,第一行不应该出现

vlju58qv

vlju58qv1#

问题是地面或平面对撞机当你使用重力时会带来这些问题

  • 如果你知道如何编写代码,你应该为Score对象使用标记
  • 如果你不知道,关闭重力,并以你需要的方式冻结位置和旋转。

(这两个解决方案帮助了我)

9ceoxa92

9ceoxa922#

考虑添加标签或任何其他东西,可以分开得分给予者和杂项对象。你需要在OnCollisionEnter消息中检查它们,以确定其他碰撞器是否是实际的得分给予者。你的球员对象击中地面,它增加了一个点,无论如何,因此一个不必要的分数。

相关问题