Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Access variable from other gameobject

Discussion in 'Scripting' started by fmaddict, Jul 10, 2011.

  1. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    how would i access a variable from a script on a different game object?
    The variables are either booleans or objects set in unity with a Transform in script
    I'm using java
     
  2. Stec

    Stec

    Joined:
    Apr 13, 2011
    Posts:
    118
  3. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    These seem to invoke functions rather than access variables. They state do not work with my booleans when i try to use it
     
  4. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    Make sure your booleans are public.

    Because the docs are correct (and work with accessing variables).
     
  5. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    there definitely public variables.

    the error that I am getting when its trying to compile the script is "It is not possible to invoke an expression of type 'boolean'."
     
  6. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    If you have code that doesn't work, first step is to show us.
     
  7. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    I'm not quite sure which scripts i should be posting but here is the little bit i have to try and get it working before implement it into my main one

    Code (csharp):
    1. var script : gui;
    2. script = GetComponent("gui");
    3. script.sw1 ();
    trying to access these variables from a script called 'gui'

    Code (csharp):
    1. var sw1 : boolean = true;
    2. var sw2 : boolean = true;
    3. var sw3 : boolean = true;
    4. var sw4 : boolean = true;
     
  8. npsf3000

    npsf3000

    Joined:
    Sep 19, 2010
    Posts:
    3,830
    As I thought.

    Code (csharp):
    1.  
    2. script.sw1 ();
    3.  
    What are the brackets there for? Are you calling some function? This is what the error message was saying:

    What you should be doing is using it as you would any other boolean:

    Code (csharp):
    1.  
    2. //set to false
    3. script.sw1 = false;
    4.  
    5. // toggle
    6. script.sw1 = !script.sw1;
    7.  
    8. //If statement
    9.  
    10. if (script.sw1) //do something
    11.  
    12. //make sure it works
    13. debug.log(script.sw1);
    14.  
    15. //etc.
    16.  
     
  9. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    ok thank you very much that fixed it. I'm sure i tried the if statement with that and same problem but ohh well.

    i am very grateful for your help.
     
  10. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    ok 1 day on and i have problems again.

    when testing with this script it works fine
    Code (csharp):
    1. var script : path1;
    2. script = GetComponent("path1");
    3.  
    4. function Update(){
    5.     Debug.Log(script.w1);
    but when i put it in my full script it doesnt work anymore. With the error
    "NullReferenceException: Object reference not set to an instance of an object
    mover.Start () (at Assets/Movement/mover.js:15)"

    Code (csharp):
    1. var waypoint = new Array();
    2. private var currentWaypoint : int;
    3.  
    4. var speed : float = 10;
    5. var loop : boolean = false;
    6.  
    7. var ways : path1;
    8. ways = GetComponent("path1");
    9. var gui : gui1;
    10. gui = GetComponent("gui1");
    11.  
    12.  
    13.  
    14. function Start(){
    15.     waypoint.Add(ways.w7);
    16.     waypoint.Add(ways.w8);
    17.     waypoint.Add(ways.w9);
    18.     waypoint.Add(ways.w10);
    19.     waypoint.Add(ways.w82);
    20.     waypoint.Add(ways.w83);
    21.     Debug.Log(gui.sw1);
    22.     Debug.Log(waypoint);
    23. }
    24.  
    25.  
    26. function Update(){
    27.  
    28.     if(currentWaypoint < waypoint.length){
    29.         var target : Vector3 = waypoint[currentWaypoint].position;
    30.         var moveDirection : Vector3 = target - transform.position;
    31.        
    32.         var velocity = rigidbody.velocity;
    33.        
    34.         if(moveDirection.magnitude < 1){
    35.             currentWaypoint++;
    36.         }
    37.         else{
    38.             velocity = moveDirection.normalized * speed;
    39.         }
    40.     }
    41.     else{
    42.         if(loop){
    43.             currentWaypoint=0;
    44.         }
    45.         else{
    46.             velocity = Vector3.zero;
    47.         }
    48.        
    49.     }
    50.    
    51.     rigidbody.velocity = velocity;
    52.     transform.LookAt(target);
    53. }
    54.  
    55.  
    56. function OnTriggerEnter(collision : Collider){
    57.     if (collision == ways.w83){
    58.         if(gui.sw1){
    59.             waypoint.Add(ways.w84);
    60.             waypoint.Add(ways.w85);
    61.             waypoint.Add(ways.w86);
    62.             waypoint.Add(ways.w87);
    63.             waypoint.Add(ways.w88);
    64.             waypoint.Add(ways.w89);
    65.             waypoint.Add(ways.w90);
    66.             waypoint.Add(ways.w91);
    67.             waypoint.Add(ways.w92);
    68.             waypoint.Add(ways.w93);
    69.             waypoint.Add(ways.w94);
    70.             waypoint.Add(ways.w95);
    71.             waypoint.Add(ways.w109);
    72.             waypoint.Add(ways.w110);
    73.         }
    74.         else{
    75.             waypoint.Add(ways.w104);
    76.         }
    77.     }
    78.    
    79.     if (collision == ways.w104){
    80.         if(gui.sw2){
    81.             waypoint.Add(ways.w106);
    82.             waypoint.Add(ways.w116);
    83.         }
    84.         else{
    85.             waypoint.Add(ways.w105);
    86.             waypoint.Add(ways.w107);
    87.         }
    88.     }
    89.    
    90.         if (collision == ways.w116){
    91.         if(gui.sw3){
    92.             waypoint.Add(ways.w118);
    93.             waypoint.Add(ways.w120);
    94.             waypoint.Add(ways.w108);
    95.             waypoint.Add(ways.w109);
    96.             waypoint.Add(ways.w110);
    97.         }
    98.         else{
    99.             waypoint.Add(ways.w117);
    100.             waypoint.Add(ways.w119);
    101.             waypoint.Add(ways.w101);
    102.         }
    103.     }
    104.    
    105.         if (collision == ways.w101){
    106.         if(gui.sw4){
    107.             waypoint.Add(ways.w80);
    108.             waypoint.Add(ways.w12);
    109.             waypoint.Add(ways.w122);
    110.         }
    111.         else{
    112.             waypoint.Add(ways.w102);
    113.             waypoint.Add(ways.w103);
    114.             waypoint.Add(ways.w108);
    115.             waypoint.Add(ways.w109);
    116.             waypoint.Add(ways.w110);
    117.         }
    118.     }
    119.    
    120.         if (collision == ways.w96){
    121.         if(gui.sw5){
    122.             waypoint.Add(ways.w97);
    123.             waypoint.Add(ways.w78);
    124.             waypoint.Add(ways.w66);
    125.         }
    126.         else{
    127.             waypoint.Add(ways.w98);
    128.             waypoint.Add(ways.w99);
    129.             waypoint.Add(ways.w100);
    130.             waypoint.Add(ways.w116);
    131.         }
    132.     }
    133.    
    134.         if (collision == ways.w110){
    135.         if(gui.sw6){
    136.             waypoint.Add(ways.w112);
    137.             waypoint.Add(ways.w114);
    138.             waypoint.Add(ways.w13);
    139.             waypoint.Add(ways.w122);
    140.         }
    141.         else{
    142.             waypoint.Add(ways.w111);
    143.             waypoint.Add(ways.w113);
    144.             waypoint.Add(ways.w115);
    145.             waypoint.Add(ways.w81);
    146.             waypoint.Add(ways.w12);
    147.             waypoint.Add(ways.w122);
    148.         }
    149.     }
    150.    
    151.         if (collision == ways.w66){
    152.         if(gui.sw7){
    153.             waypoint.Add(ways.w80);
    154.             waypoint.Add(ways.w12);
    155.             waypoint.Add(ways.w122);
    156.         }
    157.         else{
    158.             waypoint.Add(ways.w67);
    159.             waypoint.Add(ways.w68);
    160.             waypoint.Add(ways.w69);
    161.             waypoint.Add(ways.w50);
    162.             waypoint.Add(ways.w51);
    163.         }
    164.     }
    165.    
    166.         if (collision == ways.w51){
    167.         if(gui.sw8){
    168.             waypoint.Add(ways.w53);
    169.             waypoint.Add(ways.w55);
    170.             waypoint.Add(ways.w70);
    171.             waypoint.Add(ways.w12);
    172.             waypoint.Add(ways.w122);
    173.         }
    174.         else{
    175.             waypoint.Add(ways.w52);
    176.             waypoint.Add(ways.w54);
    177.             waypoint.Add(ways.w56);
    178.             waypoint.Add(ways.w57);
    179.             waypoint.Add(ways.w58);
    180.             waypoint.Add(ways.w11);
    181.             waypoint.Add(ways.w122);
    182.         }
    183.     }
    184.    
    185.         if (collision == ways.w14){
    186.         if(gui.sw9){
    187.             waypoint.Add(ways.w31);
    188.             waypoint.Add(ways.w32);
    189.         }
    190.         else{
    191.             waypoint.Add(ways.w15);
    192.             waypoint.Add(ways.w16);
    193.             waypoint.Add(ways.w17);
    194.             waypoint.Add(ways.w18);
    195.             waypoint.Add(ways.w18);
    196.             waypoint.Add(ways.w20);
    197.         }
    198.     }
    199.    
    200.         if (collision == ways.w32){
    201.         if(gui.sw10){
    202.             waypoint.Add(ways.w33);
    203.             waypoint.Add(ways.w35);
    204.             waypoint.Add(ways.w37);
    205.             waypoint.Add(ways.w39);
    206.             waypoint.Add(ways.w41);
    207.             waypoint.Add(ways.w44);
    208.             waypoint.Add(ways.w45);
    209.         }
    210.         else{
    211.             waypoint.Add(ways.w34);
    212.             waypoint.Add(ways.w36);
    213.             waypoint.Add(ways.w38);
    214.             waypoint.Add(ways.w40);
    215.             waypoint.Add(ways.w42);
    216.             waypoint.Add(ways.w43);
    217.             waypoint.Add(ways.w44);
    218.             waypoint.Add(ways.w45);
    219.         }
    220.     }
    221.    
    222.         if (collision == ways.w20){
    223.         if(gui.sw11){
    224.             waypoint.Add(ways.w22);
    225.             waypoint.Add(ways.w23);
    226.             waypoint.Add(ways.w24);
    227.             waypoint.Add(ways.w65);
    228.             waypoint.Add(ways.w78);
    229.         }
    230.         else{
    231.             waypoint.Add(ways.w21);
    232.             waypoint.Add(ways.w25);
    233.         }
    234.     }
    235.    
    236.         if (collision == ways.w25){
    237.         if(gui.sw12){
    238.             waypoint.Add(ways.w26);
    239.             waypoint.Add(ways.w28);
    240.             waypoint.Add(ways.w31);
    241.             waypoint.Add(ways.w32);
    242.         }
    243.         else{
    244.             waypoint.Add(ways.w27);
    245.             waypoint.Add(ways.w29);
    246.             waypoint.Add(ways.w30);
    247.             waypoint.Add(ways.w48);
    248.             waypoint.Add(ways.w49);
    249.             waypoint.Add(ways.w50);
    250.             waypoint.Add(ways.w51);
    251.         }
    252.     }
    253.    
    254.         if (collision == ways.w71){
    255.         if(gui.sw13){
    256.             waypoint.Add(ways.w59);
    257.         }
    258.         else{
    259.             waypoint.Add(ways.w72);
    260.             waypoint.Add(ways.w73);
    261.             waypoint.Add(ways.w74);
    262.             waypoint.Add(ways.w75);
    263.             waypoint.Add(ways.w76);
    264.             waypoint.Add(ways.w82);
    265.             waypoint.Add(ways.w83);
    266.         }
    267.     }
    268.    
    269.         if (collision == ways.w59){
    270.         if(gui.sw14){
    271.             waypoint.Add(ways.w77);
    272.             waypoint.Add(ways.w78);
    273.         }
    274.         else{
    275.             waypoint.Add(ways.w60);
    276.             waypoint.Add(ways.w61);
    277.             waypoint.Add(ways.w62);
    278.             waypoint.Add(ways.w63);
    279.             waypoint.Add(ways.w64);
    280.             waypoint.Add(ways.w19);
    281.             waypoint.Add(ways.w20);
    282.         }
    283.     }
    284.    
    285.         if (collision == ways.w45){
    286.         if(gui.sw15){
    287.             waypoint.Add(ways.w56);
    288.             waypoint.Add(ways.w57);
    289.             waypoint.Add(ways.w58);
    290.             waypoint.Add(ways.w11);
    291.             waypoint.Add(ways.w122);
    292.         }
    293.         else{
    294.             waypoint.Add(ways.w46);
    295.             waypoint.Add(ways.w47);
    296.             waypoint.Add(ways.w48);
    297.             waypoint.Add(ways.w49);
    298.             waypoint.Add(ways.w50);
    299.             waypoint.Add(ways.w51);
    300.         }
    301.     }
    302.    
    303.         if (collision == ways.w78){
    304.         if(gui.sw16){
    305.             waypoint.Add(ways.w66);
    306.         }
    307.         else{
    308.             waypoint.Add(ways.w79);
    309.             waypoint.Add(ways.w101);
    310.         }
    311.     }
    312.    
    313.         if (collision == ways.w77){
    314.         if(gui.sw17){
    315.             waypoint.Add(ways.w78);
    316.         }
    317.         else{
    318.             waypoint.Add(ways.w96);
    319.         }
    320.     }
    321. }
     
  11. amit1532

    amit1532

    Joined:
    Jul 19, 2010
    Posts:
    305
    replace with this:
    PHP:
    var ways;
    ways GetComponent("path1");
    var 
    gui;
    gui GetComponent("gui1");
    let unity decide what type is the variable
    a name of a script is not a type.
     
  12. fmaddict

    fmaddict

    Joined:
    Apr 2, 2011
    Posts:
    18
    i managed to fix it by adding gameObject.Find to force it to look in the right place. i believe it was finding the raw script with nothing attached rather than the one on the object.