//Excerpt from the script where i get the component
 public GameObject Tile_Manager;
 List<GameObject> TL = Tile_Manager.GetComponent<TM>().TilesL;
// it's the Tile_Manager bit that's underlined in red if that's any help
//How i defined the list in my other script  (TM)
public List<GameObject> TilesL = new List<GameObject>();
            Asked
            
        
        
            Active
            
        
            Viewed 1,837 times
        
    0
            
            
        
        Matt Burland
        
- 44,552
 - 18
 - 99
 - 171
 
- 
                    It means what it says. You can't access `Tile_Manager` because it's an instance field and you don't have an instance. You should probably initialize `TL` in a constructor. – Matt Burland Nov 28 '16 at 17:50
 
2 Answers
3
            
            
        See https://stackoverflow.com/a/14439262/1193647 for an explanation of why this can't work. Basically, you can't reference the field you made, Tile_Manager when initializing another field in that class, since the compiler can choose to run them in a different order when first initializing the class.
Also, right now Tile_Manager is null, so even if this compiled, you'd get a NullReferenceException when it ran. To solve this, you should probably add a constructor for your class where you initialize Tile_Manager, and then in the following line initialize TL
        Community
        
- 1
 - 1
 
        Kolichikov
        
- 2,944
 - 31
 - 46
 
0
            
            
        Perhaps,you can try swap the second line with third line...
        ThinkExplorer
        
- 1
 - 1
 
- 
                    Read carefully. 2nd line is in one script, 3rd in another. How to swap them? – MarianD Nov 28 '16 at 18:02
 - 
                    public static List
TilesL = new List – ThinkExplorer Nov 28 '16 at 18:10(); //Sorry.This time I read carefully.It's right?Use static to define this variable,and access it in another script.