2015-10-20 2 views
1

Я хочу использовать компоненты (переменные, функции, объекты) одного UnityScript в другом. Для этого я использую следующий код сценария, но он выдает исключение с именем nullpointerreference и не отображает значение в журнале.Как использовать компоненты одного скрипта в другом?

public var hitCar:camrot; 

function Update() 
{ 
    if(hitCar.hit==1) 
     Debug.Log(hitCar.hit); 
} 

camrot еще один UnityScript где hit переменная объявлена ​​как public integer и выше код выполняется в другом сценарии, чем camrot UnityScript файл.

+0

Любые обновления здесь? Был ли один из ответов ближе к решению? Вы сами нашли ответ, который касается вашей проблемы? – Serlite

ответ

0

В зависимости от области действия, которую вы ищете, просто запомните, если вы не объявляете переменную и просто присваиваете значение, которое она будет автоматически представлять из области GLOBAL.

Так просто присваивая hitCar.hit = 1 без объявления, он назначит глобальную область действия и будет работать во всех взаимосвязанных сценариях и функциях. Если вы назначили hitCar.hit в другом скрипте, затем обновите его в этом скрипте, он также вернется к нулевому значению. Поэтому удалите все объявления и посмотрите, что произойдет.

Если UNITY является «строгим», тогда объявите эти переменные в начале первого файла сценария, который будет выполнен.

+0

Что я знаю и делал, но не работал –

1

Если вы хотите получить доступ к переменным из другого сценария, вам может потребоваться найти GameObject, к которому прикреплен скрипт, чтобы его использовать.

(C#, я не знаю, JavaScript)

Сценарий 1 - Прикрепленный к "Игрок" GameObject, скрипт называется PlayerScript

public bool canJump; 

void Update() 
{ 
    //code 
} 

Сценарий 2 - Прикрепленный к другому GameObject

GameObject player; 
void Start() 
{ 
    player = GameObject.Find("Player"); //finds the gameobject called "Player" 
} 
void Update() 
{ 
    player.GetComponent<PlayerScript>().canJump = false; //use the variable in another script! 
} 

Надеюсь, что это поможет :)

+0

Извините, но он не работает, даже если я попытался преобразовать его в javascript –

+0

Какой код вы пробовали? – Tom

+0

Я использовал то, что вы предложили, но после преобразования его в javascript –