Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как решить ошибку в юнити CS0115

Никита Полутин Ученик (92), на голосовании 6 месяцев назад
ошибка

Assets\ButtonLight.cs(15,26): error CS0115: 'ButtonLight.OnMouseUp()': no suitable method found to override


код

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

public class ButtonLight : Button
{
public GameObject quad;

public override void OnMouseDown()
{
base.OnMouseDown();
quad.SetActive(false);
}

public override void OnMouseUp()
{
base.OnMouseUp();
quad.SetActive(true);
}
}
Голосование за лучший ответ
робот д24 Мудрец (19447) 7 месяцев назад
Он вроде с аргументом в базовом классе
Sahaprof Просветленный (25772) 7 месяцев назад
reply chat gpt

Ошибка CS0115 возникает, когда вы пытаетесь переопределить метод, который не является абстрактным или виртуальным в базовом классе. Для того чтобы исправить эту ошибку в вашем коде, вам нужно изменить метод OnMouseUp() в классе ButtonLight на метод, который существует в базовом классе Button.

Если класс Button не содержит метода OnMouseUp(), то вы можете создать новый метод OnMouseUp() без использования ключевого слова override:

```csharp
public class ButtonLight : Button
{
public GameObject quad;

public override void OnMouseDown()
{
base.OnMouseDown();
quad.SetActive(false);
}

public void OnMouseUp()
{
quad.SetActive(true);
}
}
```

Если вы хотите переопределить метод OnMouseUp(), то убедитесь, что метод OnMouseUp() существует в базовом классе Button.

Если класс Button содержит метод OnMouseUp(), то проблема может быть в том, что метод OnMouseUp() в классе Button объявлен как private или sealed, что не позволяет его переопределить. В таком случае вам нужно изменить модификатор доступа метода OnMouseUp() в классе Button на protected или virtual.
Похожие вопросы