вот что я пытаюсь сделать:
1) У меня есть префаб под названием bloby, просто сфера, которая содержит скрипт класса Bloby (объясню позже).
2) Мне нужно создать 10 пузырьков на экране, но каждый пузырь имеет разную скорость, поэтому я создал класс Bloby:
Код (CSharp):
public class Bloby : MonoBehaviour
{
public float speed;
public GameObject body;
public Bloby(float s, GameObject ga)
{
this.speed = s;
this.body = ga;
}
public void Instant(float xPos, float zPos)
{
GameObject instance = Instantiate(this.body) as GameObject;
instance.transform.position = new Vector3(xPos, 1, zPos);
}
}
3) Поскольку я создаю экземпляр игрового объекта, при создании объекта Bloby я передаю префаб в качестве параметра и создаю экземпляр.
4) Это работает нормально, мой Bloby создается на экране, когда я вызываю Bloby bloby = new Bloby (10, персонаж); (персонаж - объект игры)
5) Странная вещь заключается в том, что когда создается экземпляр моего объекта, сценарий Bloby (который присоединен к префабу) остается со значением переменной speed = 0, даже если я установил его равным 10, когда создал его, и переменная тела = ноль. Если я добавлю Debug.Log (скорость) в класс Bloby, он покажет 10, но значение переменной в самом скрипте не изменится.
* Вот место, где я создаю Blobies:
Код (CSharp):
public GameObject character;
Bloby bloby = new Bloby(10, character);
bloby.Instant(xPos, zPos);
Я постараюсь добавить несколько картинок, чтобы было легче понять, что я имею в виду.
Спасибо