Юнити выдаёт ошибку CS0165: Use of unassigned local variable 'chislo'

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

public class schotchickopibavlator : MonoBehaviour
{
    
    GameObject schotchick;
    // Start is called before the first frame update
    void Start()
    {  
       GameObject go = GameObject.Find("googlemenu");
       schotchick schotchick = go.GetComponent<schotchick>();
       float chislo = schotchick.chislo;
    }

    // Update is called once per frame
    void update()
    {
    
    }
    public void chislo()
    {
      float  chislo = chislo+1f;
    }
}

Ответы (1 шт):

Автор решения: aepot

Ошибка примитивная, использование не присвоенной переменной. Переменная имеет зону видимости, то есть в рамках {} скобок, где вы её объявили.

Например, если написать так

{
    int i = 123;
}

{
    int i = 42;
}

Здесь 2 разные переменные i.

Чтобы переменная стала общая, её надо вынести на уровень выше.

{
    int i = 0;

    {
        i = 42;
    }

    {
        i = i + 1;
    }
{

В вашем случае это будет выглядеть так:

GameObject schotchick;
float chislo;

void Start()
{  
    GameObject go = GameObject.Find("googlemenu");
    schotchick schotchick = go.GetComponent<schotchick>();
    chislo = schotchick.chislo;
}

public void Chislo()
{
    chislo = chislo + 1f;
}

Ещё называйте методы и классы с большой буквы.

→ Ссылка