Создаю один проект и метод Update срабатывает несколько раз, затем создаю другой, а он срабатывает один раз. Вот примеры.
Неработающий триггер 3D:
using UnityEngine;
public class Trigger : MonoBehaviour
{
public Transform obj;
public float speed = 5.0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
private void OnTriggerExit(Collider other)
{
if(other.gameObject.name == "Sten")
{
Debug.Log("cat");
obj.Translate(new Vector3(1, 0, 0) * speed * Time.deltaTime);
}
}
}
В этом коде когда наш обьект покидает Триггер, то наш обьект должен двигатьс по x и выводить в консоль слово cat, но ничего не срабатывает, а в обьекте Sten указано, что оно триггер, ведь я поставил галочку is Trigger.
следующее, а тут песня с update
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Threading;
using UnityEngine;
public class SphereMove : MonoBehaviour
{
// private int number = 1;
public Transform ObjSphere;
private float SphereSpeed = 5.0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
float Sphera = ObjSphere.position.z;
ObjSphere.Translate(new Vector3(0, 0, -1) * SphereSpeed * Time.deltaTime);
if(Sphera <= 1.0f)
{
ObjSphere.position = new Vector3(-26.83f, 2.43f, 11.92f);
}
}
}
А в первом проекте здесь сфера у нас достигает 1.0f и возращает обратно в позицию, а изначальная у нас позиция меняется, но в другом проекте как бы я не переписывал весь код, ничего не работает. Обьясните эту магию или ошибки в коде.