Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163

Публичная переменная становится не null

14.09.2018, 06:23. Показов 2027. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток
1. у меня есть класс Item в котором содержатся переменные названия, описания, хар-ки и тд.
2. в другом скрипте я создаю публичный экземпляр этого ^ класса и при старте объявляю его null
3. проблема: в инспекторе эта публичная переменная типа Item становится не null

- как можно сделать так что бы переменная оставалась публичной и была null изначально?
(фишка еще в том что..во время выполнения скрипта если открыть объект на который повешан скрипт с этой переменной - то возникают ошибки - так как когда переменная должна быть null - становится не null чудо)
- либо как сделать переменную приватной но получить к ней доступ из другого скрипта?

Добавлено через 8 минут
п.с. код не стал кидать - так как если проделать это все в пустой сцене и только с этими переменными - все тоже самое
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2018, 06:23
Ответы с готовыми решениями:

Удаление объекта из листа, когда объект становится null
Всем привет. Есть класс, допустим это клетка на поле class Foo { public ulong x; public ulong...

После вывода из php js кода он становится null/undefined
<script> var categoryId = <?=$item?>; document.getElementById("category").value = categoryId;//здесь setCategory(); </script> ...

Переменная вдруг становится равна -1
#include <fstream> #include <queue> #include <vector> #include <cstdlib> using namespace std; ifstream in ("input.txt"); ...

7
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
14.09.2018, 07:45
Цитата Сообщение от unftech Посмотреть сообщение
код не стал кидать - так как если проделать это все в пустой сцене и только с этими переменными - все тоже самое
То есть нам самим догадаться что у вас за код и почему он не работает?

unftech,
Во-первых, выучите терминологию. Ваш текст невозможно понять.
Цитата Сообщение от unftech Посмотреть сообщение
класс Item в котором содержатся переменные
Переменные - существуют только внутри метода, переменная не может быть "публичной". У класса не бывает переменных. У класса бывают поля и свойства.
Цитата Сообщение от unftech Посмотреть сообщение
при старте объявляю его null
Переменные и поля нельзя объявить null. В объявлении вы указываете тип поля/свойства/переменной. А null можно только присвоить.

Во-вторых, создайте тестовый проект со своими классами, где можно увидеть проблему, и выложите его (для уменьшения объема - можно удалить папку Library).
Или как минимум - выложите весь код, относящийся к проблеме.
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
14.09.2018, 08:39  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
То есть нам самим догадаться что у вас за код и почему он не работает?
пожалуйста:

класс итем
C#
1
2
3
4
5
6
[System.Serializable]
public class Item
{
   public string item_name;
   public string item_description;
}
C#
1
2
3
4
5
6
7
8
9
10
public class Inventory: MonoBehaviour
{
   //публичная ...
   public Item DragItem;
 
   void Start()
   {
        DragItem = null;
   }
}
Цитата Сообщение от Storm23 Посмотреть сообщение
Во-первых, выучите терминологию. Ваш текст невозможно понять.
это классно что вы владеете терминологией и профессионал
у меня же есть ..то что есть, иначе я бы не писал суда, я только учусь, и считаю, что это более менее адекватный русско-язычный форум (раздел) для помощи в Unity, по этому пытаюсь объяснить как могу, ваше дело читать мою тему или нет, я не каких правил не нарушаю, если кому то не понятно как я написал, могут просто переспросить или не читать меня вовсе, а я просто пойду и тоже самое напишу например на какой нибудь стакОверфлов
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
14.09.2018, 11:27
Цитата Сообщение от unftech Посмотреть сообщение
класс итем
Класс с атрибутом Serializable не может быть null (см здесь https://docs.unity3d.com/Manua... ation.html ).
Поэтому либо вы делаете его Serializable и он отображается в инспекторе, но не может быть null.
Либо же вы убираете Serializable и он станет null, но тогда он не будет отображаться в инспекторе.

Хотя на самом деле это конечно все можно обойти разными способами (либо переопределить оператор ==, либо сделать кастомный редактор, и т.д). Конкретный способ реализации зависит от того, что точно вам нужно.

Цитата Сообщение от unftech Посмотреть сообщение
если кому то не понятно как я написал, могут просто переспросить или не читать меня вовсе
Еще раз: язык нужен для передачи информации. Если вы используете слова не по назначению, то вас просто не поймут. Если вы зайдете в магазин и на бутылке молока будет написано "пиво", а на пиве будет написано "сырок диетический", то врядли вам это понравится. Вот точно также для других людей звучит ваше "переменная класса".
Применяя случайные слова вы проявляете неуважение к другим людям, заставляя их додумывать что же вы такое имели ввиду.

Кроме того, не зная правильной терминологии вы не сможете нормально искать информацию в интернете.

Цитата Сообщение от unftech Посмотреть сообщение
и тоже самое напишу например на какой нибудь стакОверфлов
И там поймут что такое "переменная класса"? Там модератор даже не пропустит такой пост.
1
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
14.09.2018, 11:36  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
неуважение к другим людям
новичкам как то нужно спрашивать, даже если они не знают как это называется
все ошибаются, те кто шарит помогают или не помогают их дело, а так все в дело в отношении к форумчанинам, друг к другу

спасибо за ответ, помогло
0
115 / 83 / 43
Регистрация: 19.01.2018
Сообщений: 484
14.09.2018, 12:11
Цитата Сообщение от unftech Посмотреть сообщение
новичкам как то нужно спрашивать, даже если они не знают как это называется
новичкам вообще не дело в этом разделе, для того что бы писать игру на Юнити, нужно знать Си-шарп, т.е. если человек знает этот язык, он уже не новичок.

Говорят что бы лучше выучить юнити - нужно узнавать новое по ходу создания игры, но с ЯП это далеко не так, тебе нужно просто сесть и выучить все хоть до классов, и как оно устроено, методы других классов из библиотек выучишь по ходу.

Цитата Сообщение от unftech Посмотреть сообщение
дело в отношении к форумчанинам, друг к другу
Ну на вопрос про "переменные класса" не сразу придет в голову что ты писал о полях, ведь уже давно есть стандарт что и как называется, во всех книгах/сайтах/видеороликах говорят именно "поля класса".

Добавлено через 1 минуту
Цитата Сообщение от unftech Посмотреть сообщение
либо как сделать переменную приватной но получить к ней доступ из другого скрипта?
C#
1
2
3
4
5
6
private int _Pole1;
public int Pole1
{
get {return _Pole1;}
set {this._Pole1 = value;}
}
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
14.09.2018, 12:46  [ТС]
Цитата Сообщение от RostikTawer Посмотреть сообщение
новичкам вообще не дело в этом разделе

Не по теме:

какой супер-крутой форум, ок не дело так не дело



Добавлено через 21 минуту

Не по теме:

п.с. и нет не какой ошибки называть поля класса - переменными

0
14.09.2018, 13:01

Не по теме:

Цитата Сообщение от unftech Посмотреть сообщение
п.с. и нет не какой ошибки называть поля класса - переменными
Первый же абзац тебе говорит обратное:
Поле является переменной любого типа, которая объявлена непосредственно в классе или структуре. Поля являются членами содержащих их типов.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2018, 13:01
Помогаю со студенческими работами здесь

Вне функции переменная становится undefined
Скрипт грузит div с нескольких страничек для проверки есть ли там текст 'vitrina_element' и считает кол-во таких страниц. var...

Обработка данных от пользователя, переменная становится пустой
Есть данный метод у класса по работе с данными. Использую при приеме данных через формы, и строки запроса. В Denwer все обрабатывается...

Переменная в цикле не становится равной заданной величине
Привет. Написал такой код. procedure TForm1.Button1Click(Sender: TObject); Var x:Real; begin x:=0; While x<=1.01 do Begin if...

Почему переменная g после switch-а становится равной нулю?
Здравствуйте! На скрине код и тест. Не могу понять в чем проблема( код с ошибкой, с code::blocks или еще что-то), почему переменная g после...

После функции unserialize переменная становится bool(false)
$arr = array('name' => 'Павел', 'surname' => 'Викторович'); $arr = serialize($arr); //переводит массив данных в строку. /*$arr =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru