Как взять переменную переменную из самопального скрипта?

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

Как взять переменную переменную из самопального скрипта?

Сообщение mkostoevr 27 май 2017, 12:57

Здравия всем!

Дело такое:

Я написал простенький скрипт:

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

public class MAT : MonoBehaviour {
    public string Material;
}


И присвоил скрипту в объекте значение "Metal.

Теперь хочу сделать так, чтобы при прикосновении пули к объекту, если объект металлический, появлялись искры.

Попытался сделать так:

Синтаксис:
Используется csharp
if (object.GetComponent<MAT>().Material == "Metal") { *Появляются искры* }


И здесь выстветилась проблема: Функция GetComponent не знает такого компонента, как "MAT".

Вопрос: что делать? Как мне достучаться до переменной "Material" из скрипта "MAT"?

А пока приходится пользоваться костылём:

Синтаксис:
Используется csharp
if (Hit.transform.GetComponent<GUIText>().text == "Metal")
                {
                    *Появляются искры*
                }


P.S.: Я не смог найти, открывалась ли подобная тема раньше, т. к. гениальнейшие разработчики сайта запретили отправлять один поисковый запрос сразу после другого.
Скрытый текст:
Изображение
mkostoevr
UNец
 
Сообщения: 3
Зарегистрирован: 06 июл 2016, 19:39

Re: Как взять переменную переменную из самопального скрипта?

Сообщение seaman 27 май 2017, 13:29

Для начала - прочитайте еще раз что делает GetComponent.
Returns the component of Type type if the game object has one attached, null if it doesn't.

Если будете внимательны - отпадет вопрос - почему она не находит компонент MAT
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Как взять переменную переменную из самопального скрипта?

Сообщение mkostoevr 27 май 2017, 13:47

seaman писал(а):Для начала - прочитайте еще раз что делает GetComponent.
Returns the component of Type type if the game object has one attached, null if it doesn't.

Если будете внимательны - отпадет вопрос - почему она не находит компонент MAT


А как тогда правильно взять переменную из прикреплённого скрипта? Делать так, как этот (https://www.youtube.com/watch?v=mP3oZ7P ... be&t=4m04s) чел делает с анимацией и возможностью стрелять в беге не получится, ибо пуль и предметов, с которыми она сталкивается много.
mkostoevr
UNец
 
Сообщения: 3
Зарегистрирован: 06 июл 2016, 19:39

Re: Как взять переменную переменную из самопального скрипта?

Сообщение mkostoevr 27 май 2017, 14:00

EVRICA!!! (или как его там?)

Если кому-то понадобится, вот как достать переменную из скрипта, прикреплённому к объекту:

Скрипт, из которого берём переменную:

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

public class MAT : MonoBehaviour {
    public string Material;
}


Нужная часть скрипта, в котором пытаемся достать переменную:

Синтаксис:
Используется csharp
var Mat = Hit.transform.GetComponent(typeof(MAT)) as MAT;
string Material = Mat.Material;


Синтаксис:

var *переменная, в которую мы заключаем скрипт* = *объект, на котором висит скрипт*.GetComponent(typeof(*Класс скрипта, описан в самом начале скрипта*)) as *Касс скрипта*

А потом вытаскиваем из полученного скрипта, как я написал выше.
mkostoevr
UNец
 
Сообщения: 3
Зарегистрирован: 06 июл 2016, 19:39


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4