Как передать информацию из одного скрипта в точно такой же скрипт но на другом объекте?
У меня есть объект с триггером при попадании игрока на триггер появляется точно такой же объект с тем же скриптом нужно чтобы информация передавалась в другой скрипы вот что я написал:
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 шт):
Насколько я понимаю, у вас нет ни одной публичной переменной, все переменные находятся внутри метода. Вам нужно вынести переменные, которым нужно передать значение, за пределы метода и сделать их публичными и при создании нового экземпляра объекта передавать уже в его переменные все нужные значения.