Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Transporter : MonoBehaviour
- {
- public Vector3 direction { get { return (_endPoint.position - _startPoint.position).normalized; } }
- [SerializeField] private GameObject _element;
- [Header("Transporter Settings")]
- [SerializeField] private Transform _startPoint;
- [SerializeField] private Transform _endPoint;
- [SerializeField] private int _count;
- private Transform _transform;
- private Transform _firstElement;
- private Rigidbody _firstRigidbody;
- private Vector3 _offset;
- public void ResetPosition(Transform target)
- {
- target.position = _firstElement.position + _offset;
- _firstElement = target;
- }
- private void Awake()
- {
- _transform = transform;
- CreateLine();
- }
- private void CreateLine()
- {
- for(int i=0; i<_count; i++)
- {
- Vector3 pos = Vector3.Lerp(_startPoint.position, _endPoint.position, (float)i / (float)(_count - 1));
- GameObject instantiated = Instantiate(_element, pos, Quaternion.identity);
- instantiated.name = "element" + i;
- instantiated.transform.parent = _transform;
- if (i == 0)
- {
- _firstElement = instantiated.transform;
- _firstRigidbody = instantiated.GetComponent<Rigidbody>();
- }
- if (i == 1) _offset = _firstElement.transform.position - pos;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement