Ошибка cs1061. Не могу найти причиную

Программирование на Юнити.

Ошибка cs1061. Не могу найти причиную

Сообщение its Het 01 июл 2021, 18:24

[unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] (c#)

Здраствуйте!
У меня ошибка в коде (c#) . Переискал весь интернет, но все ровно не могу найти такой же случай как у меня. Ошибка пишет:error CS1061: Type Clicker does not contain a definition for AddMoney and no extension method AddMoney of type Clicker could be found (are you missing a using directive or an assembly reference?) (ПЕРЕВОД: ошибка CS1061: Тип Clicker не содержит определения для AddMoney, и не удалось найти метод расширения AddMoney типа Clicker (вам не хватает директивы using или ссылки на сборку?) )
Код номер 1 в котором ошибка:(ОШИБКА НА 38 СТРОКЕ)

Синтаксис:
Используется csharp
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;

public class AmplifierPref : MonoBehaviour, IPointerClickHandler
{

    [SerializeField]
    private TextMeshProUGUI level;
    [SerializeField]
    private TextMeshProUGUI price;

    private DamageAmplifier amplifier;
    private CanvasGroup group;

    public void SetData(DamageAmplifier amplifier)
    {
        group = GetComponent<CanvasGroup>();

        this.amplifier = amplifier;
        UpdateUI();
    }

    public void UpdateUI()
    {
        level.text = "x" + amplifier.Level;
        price.text = "$" + amplifier.Price;

        group.alpha = Clicker.Instanse.Money >= amplifier.Price ? 1 : .5f;
    }

    public void OnPointerClick(PointerEventData eventData)
    {
        if (Clicker.Instanse.Money < amplifier.Price)
            return;


        Clicker.Instanse.AddMoney(-amplifier.Price);
        amplifier.LevelUp();
        UpdateUI();
    }
}



Код номер два в который я обращаюсь из первого:
(МЕТОД НА 100 СТРОКЕ)

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class Clicker : MonoBehaviour
{
    public static Clicker Instanse;

    public float Money
    {
        get => PlayerPrefs.GetFloat("Money", 0);
        private set => PlayerPrefs.SetFloat("Money", value);
    }

    [SerializeField]
    private TextMeshProUGUI money;
    [SerializeField]
    private List<AmplifierPref> amplifierPrefs;

    private List<DamageAmplifier> amplifiers;

    private void Awake()
    {
        Instanse = this;
    }
   
     void Start()
    {

        amplifiers = new List<DamageAmplifier>()
        {
            new DamageAmplifier(DamageAmplifier.AmplifierType.PLUS_CLICK_DAMAGE, 0, false, 2, 1.5F, 100, 75),
            new DamageAmplifier(DamageAmplifier.AmplifierType.CLICK_CRIT, 100, false, 2, 2f, 200, 100, 25),
            new DamageAmplifier(DamageAmplifier.AmplifierType.PASSIVE_DAMAGE, 0, true, 2, 1.25f, 125, 50),
        };

        for (int i = 0; i < amplifierPrefs.Count; i++)
            amplifierPrefs[i].SetData(amplifiers[i]);




        StartCoroutine(PassiveDamageDealer());

        UpdateUI();

    }

    private IEnumerator PassiveDamageDealer()
    {
        while (true)
        {
            yield return new WaitForSeconds(1);
            DamageTarget(GetPassiveDamage());
        }
    }

    public void Click()
    {
        DamageTarget(GetClickDamage());
    }

    private void DamageTarget(float damage)
    {
        AddMoney(damage);
    }

    private float GetClickDamage()
    {
        float damage = 1;

        var sortedAmplifiers = amplifiers.FindAll(x => !x.IsPassive);
        sortedAmplifiers.Sort((x, y) => x.Priority.CompareTo(y.Priority));

        foreach (var amplifier in sortedAmplifiers)
            damage = amplifier.CalculateDamage(damage);

        return damage;
    }

    private float GetPassiveDamage()
    {
        float damage = 0;

        var sortedAmplifiers = amplifiers.FindAll(x => x.IsPassive);
        sortedAmplifiers.Sort((x, y) => x.Priority.CompareTo(y.Priority));

        foreach (var amplifier in sortedAmplifiers)
            damage = amplifier.CalculateDamage(damage);

        return damage;
    }

    public void UpdateUI()
    {
        money.text = "$" + (int)Money;
    }

    public void AddMoney(float value)
    {
        Money += value;
        UpdateUI();

        foreach (var pref in amplifierPrefs)
            pref.UpdateUI();
    }
}


[unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] [unity 3D] (c#)
its Het
UNец
 
Сообщения: 2
Зарегистрирован: 02 май 2021, 21:19

Re: Ошибка cs1061. Не могу найти причиную

Сообщение 1max1 01 июл 2021, 19:14

Нажимаешь в студии ctrl + ; и ищешь еще один класс Clicker, потом удаляешь его.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Ошибка cs1061. Не могу найти причиную

Сообщение its Het 01 июл 2021, 20:07

Нажимаю это сочетание клавиш высвечивается обозреватель решений. Ввожу туда Clicker, и он пишет что ничего не найдено
1max1 писал(а):Нажимаешь в студии ctrl + ; и ищешь еще один класс Clicker, потом удаляешь его.
its Het
UNец
 
Сообщения: 2
Зарегистрирован: 02 май 2021, 21:19

Re: Ошибка cs1061. Не могу найти причиную

Сообщение lol 15 июл 2021, 00:16

Может переменная Price в классе DamageAmplifier имеет тип не float, а какой-то другой?
lol
Старожил
 
Сообщения: 508
Зарегистрирован: 15 ноя 2009, 10:48
Откуда: Москва


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 15