Не могу получить переменную

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Не могу получить переменную

Сообщение mepihin 07 янв 2013, 12:41

Вот блин вопрос:
Почему я не могу получить переменную из моего скрипта в Character Motor. То есть мне нужно использовать переменную из моего скрипта FPSController в моторе.
Делаю так:
Синтаксис:
Используется javascript
private var fpscontroller : GameObject;

function Awake () {
        controller = GetComponent (CharacterController);
        tr = transform;
        fpscontroller = GetComponent("FPSController");
}

function Update () {
        if (!useFixedUpdate)
                UpdateFunction();
        if(Input.GetKey(KeyCode.LeftShift) && fpscontroller.speedactive == true)
        {
                movement.maxForwardSpeed = 6.0;
        }
        if(!Input.GetKey(KeyCode.LeftShift) && fpscontroller.speedactive == false)
        {
                movement.maxForwardSpeed = 3.0;
        }
        else
        {
                if(!Input.GetKey(KeyCode.LeftShift) && fpscontroller.speedactive == true)
                {
                        movement.maxForwardSpeed = 3.0;
                }
        }
        if(Input.GetKey(KeyCode.LeftShift) && fpscontroller.speedactive == false)
        {
                movement.maxForwardSpeed = 3.0;
        }
}]


Пишет вот что:
Assets/Standard Assets/Character Controllers/Sources/Scripts/CharacterMotor.js(340,61): BCE0019: 'speedactive' is not a member of 'UnityEngine.GameObject'.

Во всех строках где это есть. Перменная такая существует!
Делал иначе:
Синтаксис:
Используется javascript
if(Input.GetKey(KeyCode.LeftShift) && gameObject.transform.GetComponent("FPSController").speedactive == false)
        {
                movement.maxForwardSpeed = 3.0;
        }

Пишет вот так:
Assets/Standard Assets/Character Controllers/Sources/Scripts/CharacterMotor.js(337,98): BCE0019: 'speedactive' is not a member of 'UnityEngine.Component'.

Еще вот так пытался:
Синтаксис:
Используется javascript
transform.transform.GetComponent("FPSController").speedactive

Аналогичная ошибка, что мне делать?
Аватара пользователя
mepihin
UNIверсал
 
Сообщения: 418
Зарегистрирован: 01 янв 2013, 20:58
Откуда: Россия - Москва
Skype: live:snukler

Re: Не могу получить переменную

Сообщение seaman 07 янв 2013, 13:02

Узнать - что такое "Тип переменной". Что такое "наследование". Что такое "Приведение типов".
Ну и соответственно после этого привести Component, который возвращает GetComponent (и который естественно не содержит Ваших переменных) к своему типу.
ЗЫ и тем более не тупить и не пытаться получить переменную с GameObject, на котором вообще нет переменных.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Не могу получить переменную

Сообщение Левш@ 07 янв 2013, 13:33

gameObject.transform.GetComponent("FPSController")

Искуственно удлиненый путь... ГО сам содержит компонент, незачем через трансформ.

transform.transform.GetComponent("FPSController")

Переход с трансформа... опять на трансформ ??? :D
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт


Вернуться в Почемучка

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 20