微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用C#在Unity2D中创建一个kills计数器?

如何解决如何使用C#在Unity2D中创建一个kills计数器?

我想做一个反击计数器,但是由于某种原因它不起作用。 这就是我所做的 我创建一个新的空GameObject Game Manager,并添加一个新组件score,这是代码

using UnityEngine;
using UnityEngine.UI;

public class score : MonoBehavIoUr
{
    public Text kills_UI;
    private int Kills_Counts; //How many kills
    
    public void Increase_score() //This will update the UI text to the current kills count 
    {
        Kills_Counts++;
        kills_UI.text = Kills_Counts.ToString();
    }
}

在他被杀死后,我在敌人脚本BulletColision调用了此函数

using UnityEngine;

public class BulletColision : MonoBehavIoUr
{
    score kills_score;

    void Start()
    {
        kills_score = GetComponent<score>();
    }

    public void OnCollisionEnter2D(Collision2D others) //When a bullet collide with en enemy prefab 
    {
        if (others.gameObject.CompareTag("Enemy"))
        {
            Destroy(gameObject); //Destroy the enemy
            kills_score.Increase_score(); //Calling the function from 'GameManager'
            Destroy(others.gameObject); //Destroy the bullet
            
        }
            
    }
}

解决方法

问题出在您的kills_score = GetComponent<Score>(); 参考上,如果您这样做:

Score

您正在搜索BulletCollision上的Score组件,我猜它没有GameManager组件,因为它是项目符号。

快速修复:

为您的TAG添加一个新的kills_score = GameObject.FindWithTag("GameManager").GetComponent<Score>(); ,例如“ GameManager”,然后使用

kills_score = GetComponent<Score>();

代替

public

要快速验证这一点,请将得分变量const PerformanceComponent = ({style}) => { return <View style={style}>...</View> } export default React.memo(PerformanceComponent) 设为变量,并在编辑器中查看参考设置是否正确。

另外,请注意,尝试使用LowerCamelCame命名法维护变量,这意味着以小写字母开头。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。