Acessing function in another script C# - just dont get it - code shown

Hello,
I am new to c# and have done lots of reading etc but just cant get my head around this.
I have a script on an object ( scriptA ) and I have another on another object (scriptB).
I am trying to call a function from scriptA in scriptB.
Basically I have a trigger that when collided with needs to call the function on the other object in order to make things happen :slight_smile:
below is a stripped down version of my 2 scripts. Any help would be greatly appreciated.
If I hover over " other.StartTheFlock(); " in visual studio I can see the reference in the other script.
I think I have to use getcompoment but I am mixed up with how to use it.
First my trigger code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class triggerSpawn : MonoBehaviour {

     public globalFlock other;

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag == "Player")

            StartFlockingCode();  

    }

    void StartFlockingCode()
    {
        other.StartTheFlock();        // function in other script to call
    }   

}

My spawner code:

using UnityEngine;
using System.Collections;

public class globalFlock : MonoBehaviour {

	public void StartTheFlock () 
	{
		//code here to call from trigger script//
		{
}

I think you are confusing yourself with the variable names. Is your variable public globalflock other ever set? because in startflockingCode other refers to the public variable other, not the one you get in onTriggerEnter. to change this you should set this.other = other.getComponent<globalFlock>(); in onTriggerEnter (This might be extremely wrong if I don't understand your code correctly; I'm assuming the other object in the trigger has a globalFlock script attatched to it)

–

Wait, how are you creating the sprite atlases? I assumed you had a sprite sheet, and cut them into individual sprites using the sprite editor, as that's the preferred way to do it.

–

1 Answer

1

HI,
thanks for the response :slight_smile:
I have solved the issue.
I perhaps didnt explain too well but I didnt set the script reference in the inspector as explained here.
I must remember to not skip over stuff.