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

Вопрос по c# и в частности использованию его в Unity для программирования. Когда создаю переменную в одном скрипте в...

Матвей Кудашов Знаток (299), закрыт 6 лет назад
Очень прошу ответить!!!
Вопрос по c# и в частности использованию его в Unity для программирования. Когда объявляю переменную предположим под именем t, в одном скрипте, допустим NewBehaviourScript1, то в другом - NewBehaviourScript2 эту переменную использовать нельзя т. к. я ее еще не объявил. Компилятор не распознает ее. Вопрос вот в чём: можно ли как то объявить такую переменную, которую можно использовать во всех скриптах то есть как в NewBehaviourScript1 так и в NewBehaviourScript2?!
За хороший ответ буду очень благодарен!!!!
Это мне очень поможет в разработке моего симулятора футбольных матчей.
Дополнен 6 лет назад
МОГУ ЧЕМ-ТО ОТБЛАГОДАРИТЬ ОТВЕТИВШИХ НА МОЙ ВОПРОС!!!
Лучший ответ
East RX Просветленный (24374) 6 лет назад
Матвей КудашовЗнаток (299) 6 лет назад
Спасибо за хороший ответ!
Матвей КудашовЗнаток (299) 6 лет назад
Если делаешь public, то как к ней потом обратиться в другом скрипте?
East RX Просветленный (24374) Если поле/свойство статическое (static) - через имя класса: MyClass { public static int Field; } // в другом скрипте: MyClass.Field = 10; Для не статических - через экземпляр. В Unity обычно получают ссылку на экземпляр с помощью метода GetComponent: // "obj" здесь - объект, на который установлен нужный скрипт MyClass mc = obj.GetComponent< MyClass >(); // получаем ссылку на экземпляр mc.Field = 10; // обращаемся к его полю Field
Остальные ответы
mmedia 4 Ученик (248) 6 лет назад
Почему не создать, допустим переменную a!
Сделать отдельный алгоритм для неё!
Или сделать зависимость между t и NewBehaviourScript2, надо смотреть для чего тебе скрипт, мне так не очень понятно!
Матвей КудашовЗнаток (299) 6 лет назад
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript1 : MonoBehaviour
{
public int yyy;
bool CharacterInQuicksand;
public Transform EEndPoint;
public bool ballHaving;
void Start()
{
yyy = 0;

}

// Update is called once per frame
public Vector2 aaPosition1 = new Vector2(1, 1);
void OnTriggerEnter2D(Collider2D other)
{

if (other.gameObject.name == "1_a_football")
{
print(CharacterInQuicksand);
ballHaving=true;
}
}
void Update()
{
// Use this for initialization

if (yyy == 1)
{
aaPosition1 = new Vector2(1, 1);
transform.position = Vector2.MoveTowards(new Vector2(transform.po
Матвей КудашовЗнаток (299) 6 лет назад
Она нужна в двух скриптах в первом который я Вам написал и во втором
mmedia 4Ученик (248) 6 лет назад
Если я не ошибаюсь в юнити есть готовые замены, но это не точно!
Там типо свой скрипт прописываешь "повторно"!
Матвей Кудашов Знаток (299) Хм не знал о таком а можно чуть поподробнее об этом?
Z X Ученик (155) 6 лет назад
Глобальные переменные С# Unity
Матвей КудашовЗнаток (299) 6 лет назад
Как создать глобальную переменную?
Z X Ученик (155) unity3d.ru/distribution/viewtopic.php?f=5&t=870
Анна Глинкина Оракул (63298) 6 лет назад
Чувак у тебя локальные переменные, сделай глобальную
Матвей КудашовЗнаток (299) 6 лет назад
Легко сказать )
Я не знаю как именно их создавать. Можете пожалуйста объяснить
Анна Глинкина Оракул (63298) За штуку рублей смогу
Александр Сим Профи (674) 6 лет назад
Надо созавать переменную public а не private!
Например:
NBS1:
public bool t;
NBS2:
public gameobject player;
Player.GetCompoment().t(true);
Александра Сидорова Ученик (59) 6 лет назад
Почему не создать, допустим переменную a!
Сделать отдельный алгоритм для неё!
Или сделать зависимость между t и NewBehaviourScript2, надо смотреть для чего тебе скрипт, мне так не очень понятно!
Похожие вопросы