| 123456789101112131415161718192021222324252627282930313233343536 |
- using UnityEngine;
- using System.Collections;
- public class MoveFromToWithTransform : MonoBehaviour {
- public Transform from;
- public Transform to;
- public float speed = 4f;
- public bool lookAt = false;
- public Vector3 offset = Vector3.zero;
- public bool autoDestroy = true;
- void OnEnable()
- {
- if (from != null)
- transform.position = from.TransformPoint(offset);
- if (lookAt && to != null)
- transform.LookAt(to);
- }
- void Update()
- {
- if (to != null)
- {
- Vector3 targetPosition = to.TransformPoint(offset);
- transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * speed);
- if (autoDestroy && transform.position.FEqual(targetPosition, 1e-2f))
- {
- gameObject.Destroy();
- return;
- }
- else if (lookAt)
- transform.LookAt(to);
- }
- }
- }
|