Skip to content

Instantly share code, notes, and snippets.

@A-Gerber
Created April 25, 2025 10:27
Show Gist options
  • Save A-Gerber/4df10afefd94478e750b7adc2d57ebe3 to your computer and use it in GitHub Desktop.
Save A-Gerber/4df10afefd94478e750b7adc2d57ebe3 to your computer and use it in GitHub Desktop.
using UnityEngine;
public class MoverOnPlaces : MonoBehaviour
{
[SerializeField] private Transform _route;
[SerializeField] private float _speed = 3;
private Transform[] _places;
private int _currentNumber;
private int _startNumber = 0;
private float _closeDistance = 0.1f;
private void Awake()
{
_currentNumber = _startNumber;
}
void Start()
{
_places = new Transform[_route.childCount];
for (int i = 0; i < _route.childCount; i++)
_places[i] = _route.GetChild(i).GetComponent<Transform>();
}
private void Update()
{
Vector3 offset = _places[_currentNumber].transform.position - transform.position;
if (offset.sqrMagnitude < _closeDistance * _closeDistance)
_currentNumber = ++_currentNumber % _places.Length;
transform.forward = offset;
transform.position = Vector3.MoveTowards(transform.position, _places[_currentNumber].position, _speed * Time.deltaTime);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment