Как передать информацию из одного скрипта в точно такой же скрипт но на другом объекте?

У меня есть объект с триггером при попадании игрока на триггер появляется точно такой же объект с тем же скриптом нужно чтобы информация передавалась в другой скрипы вот что я написал:

            int OffSetX = _NextIsland.y % 2 != 0 ? 9 : 0;
        Vector3 NextPosition = new(-18 * _NextIsland.x - OffSetX, 3.5f, -15.6f * _NextIsland.y);
        GameObject NewIsland = Instantiate(IslandGenerator.Island, NextPosition, Quaternion.Euler(90, 0, 0), IslandGenerator.Islands.transform);
        float Hight = Mathf.PerlinNoise(_NextIsland.x * Random.Range(_NextIsland.x, _NextIsland.x * 2f), _NextIsland.y * Random.Range(_NextIsland.y, _NextIsland.y * 2f)) * IslandGenerator.Hight;
        Hight = Mathf.Clamp(Hight, IslandGenerator.MinHight, 1000);
        NewIsland.transform.localScale = new(10.4f, 10.4f, Hight);
        NewIsland.name = "Island";
        Destroy(gameObject);
        for (int i = 0; i < NewIsland.transform.childCount; i++)
        {
            Debug.Log(_NextIsland);
            NewIsland.GetComponent<UnLockIsland>()._NowNumder = _NextIsland;
        }

ошибка В NewIsland.GetComponent()._NowNumder = _NextIsland; В этой строчке я пытался передать значения но выдаёт ошибку: NullReferenceException: Object reference not set to an instance of an object. UnLockIsland.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/UnLockIsland.cs:56) Помогите пожалуйста.


Ответы (1 шт):

Автор решения: Kostyan_Sigaev

Насколько я понимаю, у вас нет ни одной публичной переменной, все переменные находятся внутри метода. Вам нужно вынести переменные, которым нужно передать значение, за пределы метода и сделать их публичными и при создании нового экземпляра объекта передавать уже в его переменные все нужные значения.

→ Ссылка