换弹功能有问题,左边不是加多就是右边是个负数

void Reload()
{
    if (Input.GetKeyDown(KeyCode.R))
    {
        if (Management.GetInstance().currentNum <10 && Management.GetInstance().count > 0)
        {

            if (Management.GetInstance().count >= 10)
            {

                Management.GetInstance().count -= 10 - Management.GetInstance().currentNum;
                Management.GetInstance().currentNum = 10;

            }
            else
            {
                if (Management.GetInstance().currentNum > 5 && Management.GetInstance().count > 5)
                {
                    Management.GetInstance().count -= 10-Management.GetInstance().currentNum ;
                    Management.GetInstance().currentNum = 10;
                }  else if (Management.GetInstance().count <= 5 && Management.GetInstance().currentNum <= 5&& Management.GetInstance().count>0)
                {
                    Management.GetInstance().currentNum += Management.GetInstance().count;
                    Management.GetInstance().count = 0;
                }

               else if (Management.GetInstance().currentNum > 5 && Management.GetInstance().count <=5)//问题
                {
                    Management.GetInstance().currentNum+= Management.GetInstance().count;
                    Management.GetInstance().count = Management.GetInstance().currentNum-10;
                    Management.GetInstance().currentNum-= Management.GetInstance().currentNum-10;
                   
                }
                else if (Management.GetInstance().currentNum <=5 && Management.GetInstance().count>5 && Management.GetInstance().count > 0)
                {
                    Management.GetInstance().currentNum += Management.GetInstance().count;
                    Management.GetInstance().count = Management.GetInstance().currentNum - 10;
                    Management.GetInstance().currentNum -= 

“Devil组”引证GPT后的撰写:
在最后一行,您的代码出现了截断,可能导致无法编译成功。

  • 当 Management.GetInstance().currentNum 大于 5 且 Management.GetInstance().count 小于等于 5 时,您的代码逻辑似乎有问题,因为此时执行的是 Management.GetInstance().currentNum+= Management.GetInstance().count;,但这会将当前子弹数增加 Management.GetInstance().count,而 Management.GetInstance().count 此时的值是不够用的,因此应该将 Management.GetInstance().count 的值直接赋为 0。
  • 当 Management.GetInstance().currentNum 大于 5 且 Management.GetInstance().count 小于等于 5 时,您的代码中另一个问题是在执行 Management.GetInstance().count = Management.GetInstance().currentNum-10; 和 Management.GetInstance().currentNum-= Management.GetInstance().currentNum-10; 时,可能会导致 Management.GetInstance().count 的值变成负数。应该先将 Management.GetInstance().count 的值设为 Management.GetInstance().currentNum - 5,然后再将 Management.GetInstance().currentNum 的值设为 10。
void Reload()
{
    if (Input.GetKeyDown(KeyCode.R))
    {
        if (Management.GetInstance().currentNum < 10 && Management.GetInstance().count > 0)
        {
            if (Management.GetInstance().count >= 10)
            {
                Management.GetInstance().count -= 10 - Management.GetInstance().currentNum;
                Management.GetInstance().currentNum = 10;
            }
            else if (Management.GetInstance().currentNum > 5 && Management.GetInstance().count > 5)
            {
                Management.GetInstance().count = Management.GetInstance().currentNum - 5;
                Management.GetInstance().currentNum = 10;
            }
            else if (Management.GetInstance().count <= 5 && Management.GetInstance().currentNum <= 5 && Management.GetInstance().count > 0)
            {
                Management.GetInstance().currentNum += Management.GetInstance().count;
                Management.GetInstance().count = 0;
            }
            else if (Management.GetInstance().currentNum > 5 && Management.GetInstance().count <= 5)
            {
                Management.GetInstance().count = Management.GetInstance().currentNum - 5;
                Management.GetInstance().currentNum = 10;
            }
            else if (Management.GetInstance().currentNum <= 5 && Management.GetInstance().count > 5 && Management.GetInstance().count > 0)
            {
                Management.GetInstance().count = Management.GetInstance().currentNum - 5;
                Management.GetInstance().currentNum = 10;
            }
        }
    }
}