В моей игре есть облако, которое движется справа налево.Пока он не достиг коллайдера - этот коллайдер просто должен вернуть это облако к его началу.Таким образом, облако снова и снова проходит через сцену.
У меня есть два вопроса:
Для меня оптимальным способом было бы дать облаку "зону размножения", в которой оно будет появляться после удара по сбрасывающему коллайдеру.Однако я не нашел никакой информации о зонах нереста.
Итак, я решил просто изменить значения положения в коде, как только коллайдер сработает.Итак, облако настроено на другое пространство, НО не на координаты, которые я ему дал.
В обоих примерах важно только изменить положение облака в Х.Высота (Y) и глубина (Z) должны оставаться неизменными.
Это то, чего я достиг и работает не совсем так, как ожидалось:
public class CloudScript : MonoBehaviour
{
public float moveSpeed;
void OnTriggerEnter2D(Collider2D collider)
{
if (collider.gameObject.name == "Reset Clouds Collider") // detect collision with ground game object
{
float tempY = transform.position.y;
float tempZ = transform.position.z;
transform.localPosition = new Vector3(5, tempY, tempZ);
}
}
// Update is called once per frame
void FixedUpdate()
{
transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
}
}
В этом сценарии я бы ожидал, что облако сохранит свою позицию Y и Z и просто изменит X на 5Тем не менее, облако звезд при Y = 5, а после переводчик переходит к Y = 4.После другого цикла Y = 3 .... Также Z устанавливается на 0, а начинается с 1 ....
Может кто-нибудь помочь мне здесь?Не могу быть так сложно :)
Спасибо :)