2017-02-12 3 views
0
using UnityEngine; 

    public class CartMovement : MonoBehaviour { 

    SpriteRenderer spriteRenderer; 

    LevelManager LevelManIns; 

    void Start() { 

     spriteRenderer = GetComponent<SpriteRenderer>(); 

     spriteRenderer.enabled = true; 

     (line25)LevelManIns = GetComponent<LevelManager>(); 

     Debug.Log("--" + LevelManIns.xy.X); 
     //transform.position = LevelManIns.Tiles[LevelManIns.PortalGreen].GetComponent<TileScript>().transform.position; 

     iTween.MoveTo(this.gameObject, iTween.Hash("path", iTweenPath.GetPath("cartPath"), "time", 3)); 
     } 
     } 

Я получаю ошибку:Unity: Не удается получить ссылку на класс через GetComponent

NullReferenceException: ссылка на объект не указывает на экземпляр объекта CartMovement.Start() (в Assets/скрипты/CartMovement.cs: 25)

Я не понимаю, почему я не могу получить ссылку на другой скрипт. Кто-нибудь может это исправить. Благодарю.

+0

Вы уверены, что LevelManIns = GetComponent (); генерирует ошибку? потому что не может генерировать ошибку. Если он не сможет получить компонент, он вернет значение null. Это должна быть либо строка ниже (или выше), либо другая строка. Все, что он говорит, это то, что вы пытаетесь вызвать то, что является нулевым. Мое лучшее предположение состоит в том, что GameObject не имеет к нему LevelManager. –

+0

yes levelmanager - еще один скрипт игрового объекта, но мне нужно получить доступ к некоторым свойствам этого класса. Как я могу это достичь? –

ответ

1

Если диспетчер уровня прикреплен к другому объекту (как вы упомянули в комментариях), одним из способов является ссылка на этот объект через инспектора, а затем получение сценария из этого объекта.

public class CartMovement : MonoBehaviour { 

SpriteRenderer spriteRenderer; 
// Make it public, so it is visible in the inspector, and drag and drop the object into that instance 
public LevelManager LevelManIns; 

    void Start() { 
     // No need to assign it here, just maybe check if it is assigned like so 
     if (LevelManIns == null) 
      // Error, this should be assign outside 
    } 
} 
+0

это делает спасибо !!!! –