По туториалу собираю Tower Defence на Unity для себя и на моменте создания скрипта для башен получаю ошибки CS0117 и CS0122.
Туториал супер наглядный, там просто пишется код и дополнительно объясняется что к чему.
По итогу его написания у человека все работает, у меня ошибки.
Дословно выглядят они так:
1) AssetsScriptsTower.cs(26,41): error CS0117: ‘Enemies’ does not contain a definition for ‘enemies’
2) AssetsScriptsTower.cs(51,21): error CS0122: ‘Enemy.takeDamage(float)’ is inaccessible due to its protection level
Сам Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Tower : MonoBehaviour
{
[SerializeField] private float range;
[SerializeField] private float damage;
[SerializeField] private float timeBetweenShots; // Time in seconds between shots
private float nextTimeToShoot;
private GameObject currentTarget;
private void Start()
{
nextTimeToShoot = Time.time;
}
private void updateNearestEnemy()
{
GameObject currentNearestEnemy = null;
float distance = Mathf.Infinity;
foreach(GameObject enemy in Enemies.enemies)
{
float _distance = (transform.position - enemy.transform.position).magnitude;
if (_distance < distance)
{
distance = _distance;
currentNearestEnemy = enemy;
}
}
if (distance <= range)
{
currentTarget = currentNearestEnemy;
}
else
{
currentTarget = null;
}
}
private void shoot()
{
Enemy enemyScript = currentTarget.GetComponent<Enemy>();
enemyScript.takeDamage(damage);
}
private void Update()
{
updateNearestEnemy();
if (Time.time >= nextTimeToShoot)
{
if (currentTarget != null)
{
shoot();
nextTimeToShoot = Time.time + timeBetweenShots;
}
}
}
}
error CS0117: ‘Time’ does not contain a definition for ‘deltatime’
Показываю скриншот ошибки и текст ошибки и скриншот кода который писал. немогу исправить эту ошибку ,как я понял она возникает из-за того что “delta.time” устарела и нужно использовать другой текст для этой функции.Кто может помочь ? я могу ошибаться.Если знаете как решить опишите пожалуйста.
задан 11 авг 2020 в 20:01
Ошибка говорит что у класса Time
отсутствует свойство deltatime
.
Попробуйте так: Time.deltaTime
.
ответ дан 11 авг 2020 в 20:06
eccs0103eccs0103
2,6562 золотых знака13 серебряных знаков28 бронзовых знаков
5
Гуру77777 -40 / 1 / 0 Регистрация: 14.11.2018 Сообщений: 627 |
||||
1 |
||||
29.03.2019, 19:19. Показов 7435. Ответов 1 Метки нет (Все метки)
Не работает. Как исправить? error CS0117: “object” не содержит определение для “Dispose”.
0 |
Администратор 15540 / 12520 / 4978 Регистрация: 17.03.2014 Сообщений: 25,393 Записей в блоге: 1 |
|
30.03.2019, 00:42 |
2 |
Сообщение было отмечено Гуру77777 как решение РешениеГуру77777, если это код из файла дизайнера, то значит ты стер в основном файле базовый тип Form у своего класса.
1 |
C# Compiler Error
CS0117 – ‘type’ does not contain a definition for ‘identifier’
Reason for the Error
This error can be seen when you are trying to reference an identifier that does not exist for that type. An example of this when you are trying to access a member using base. where the identifier doesnot exist in the base class.
For example, the below C# code snippet results with the CS0117 error because the the identifier Field1 is accesses using base.Field1 but it doesnot exist in the base class “Class1”.
namespace DeveloperPublishNamespace { public class Class1 { } public class Class2 : Class1 { public Class2() { base.Field1 = 1; } } public class DeveloperPublish { public static void Main() { } } }
Error CS0117 ‘Class1’ does not contain a definition for ‘Field1’ ConsoleApp1 C:UsersSenthilsourcereposConsoleApp1ConsoleApp1Program.cs 11 Active
Solution
To fix the error code CS0117, remove the references that you are trying to make which is not defined in the base class.
Как исправить ошибки CS0117 и CS0122?
По туториалу собираю Tower Defence на Unity для себя и на моменте создания скрипта для башен получаю ошибки CS0117 и CS0122.
Туториал супер наглядный, там просто пишется код и дополнительно объясняется что к чему.
По итогу его написания у человека все работает, у меня ошибки.
Дословно выглядят они так:
1) AssetsScriptsTower.cs(26,41): error CS0117: ‘Enemies’ does not contain a definition for ‘enemies’
2) AssetsScriptsTower.cs(51,21): error CS0122: ‘Enemy.takeDamage(float)’ is inaccessible due to its protection level
- Вопрос задан 13 мая 2022
- 166 просмотров
Простой 1 комментарий
1 — у тебя в классе Enemies нет члена enemies. Возможно его нет совсем, а возможно у тебя опечатка.
2 — у тебя в классе Enemy есть метод takeDamage, но он не публичный
PS: На будущее:
— отмечай комментарием, на какой именно строке сработала ошибка
— не забывай заворачивать код в тег — это сильно упростит чтение для тех, кто попробует решить твой вопрос
— перед тем как задавать вопрос — попробуй загуглить в чём суть ошибки, и попробуй сам решить (CS0117, CS0122)
— перед тем как начинать писать на юнити, лучше всё-таки хоть самые основы C# изучить. Тут как в математике — без понимания простых вещей, ты гарантированно не сможешь понять сложные вещи.
Источник
Почему я получаю ошибку компилятора CS0117 — «имя класса» не содержит определения для «имени метода»
Я пытаюсь вызвать метод load_words() из класса Words в методе Main() , и он дает мне эту ошибку:
Error CS0117 ‘Words’ does not contain a definition for ‘load_words’
Как мне вызвать эту функцию?
Разместите свой код.
Вам нужно убедиться, что вы используете одно и то же пространство имен. У вас могут быть два разных класса, которые называются словами и используют неправильный. Или верхние / нижние буквы в названии слов класса разные, поэтому на самом деле у вас есть два разных класса.
Если бы это была проблема с пространством имен, ошибка, скорее всего, указала бы на то, что компилятор не смог найти класс. Но ошибка указывает на то, что он нашел класс (так что пространство имен, вероятно, в порядке), но не может найти метод.
-Если вы используете его в другом пространство имен и пытаетесь использовать dll другого пространства имен, тогда он не будет ссылаться на этот метод.
-Возможно, вам потребуется перестроить проект
-если не пытайтесь создать класс с именем пространства имен, это может решить вашу проблему
Компилятор не сообщает вам, что не может найти класс, Words . Он сообщает вам, что не может найти метод.
Иногда метод существует, но вы не можете его назвать. Например, может быть, это не публично. Но если бы это было так, вы бы получили другое сообщение об ошибке.
Так что наиболее вероятная причина — это опечатка при вызове метода. Убедитесь, что вы правильно указали название метода. Это чувствительно к регистру. Если вы точно не сопоставили имя метода, то вызываемый вами метод на самом деле не существует, поэтому компилятор сообщает, что класс не содержит этого метода.
Другая возможность состоит в том, что у вас есть два класса с именем Words . Один находится в том же пространстве имен, что и ваш метод Main , а другой — нет. Если тот, у которого есть метод load_words , находится в другом пространстве имен, то компилятор смотрит на класс, у которого не есть этот метод.
Источник
Error cs0117 console не содержит определение для readline
Опытный
Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009
Репутация: нет
Всего: 1
VOX |
|
||
Код |
sarr = File.ReadAllLines(@»C:/data»); |
прекрасно работает под студией, но в блэнде выдает:
error CS0117: ‘System.IO.File’ не содержит определение для ‘ReadAllLines’
При это компиляции не происходит.
Пространство имен using System.IO; — подключил, подскажите пожалуйста,
в чём может заключаться проблема?
Спасибо!
dazy |
|
|||
Опытный Профиль Репутация: 3
прекрасно работает под студией, но в блэнде выдает: |
«Под студией» это в WinForms?
SilverLight не может обращаться к диску пользователя как угодно разработчику. SilverLight работает в так называемой песочнице, и работа с диском ограничена IsolatedStorage.
В общем писать/читать только в определенную папку. В 4 версии вроде будет доступ к Моим документам, и то только с разрешения пользователя. В общем, курим IsolatedStorage.
Опытный
Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009
Репутация: нет
Всего: 1
Я вас понял, спасибо за наводку!
Добавлено через 29 секунд
+ не могу поставить, т.к. ставил сегодня, я завтра проставлю, спасибо!
VOX |
|
||
|
dazy |
|
||
Опытный Профиль Репутация: 3 кого поставить? |
|||
|
Опытный
Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009
Репутация: нет
Всего: 1
VOX |
|
||
|
dazy |
|
||
Опытный Профиль Репутация: 3 |
|||
|
Опытный
Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009
Репутация: нет
Всего: 1
VOX |
|
||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
[ Время генерации скрипта: 0.1285 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Источник