1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- using DG.Tweening;
- using SC;
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class PositionFollower : MonoBehaviour {
-
- Vector3 worldPoint = Vector3.zero;
- [SerializeField]
- private float delDistance = 1;
- [SerializeField]
- private float followTime = 2;
-
-
- private Vector3 lastestPosition;
- Coroutine followCoroutine;
-
- void OnEnable() {
- followCoroutine = StartCoroutine(Following(followTime));
- lastestPosition = transform.position;
- }
- void Disable() {
- if (followCoroutine != null) {
- StopCoroutine(followCoroutine);
- }
- }
- IEnumerator Following(float time) {
- while (true) {
- yield return new WaitForSeconds(time);
- yield return null;
- if (SvrManager.Instance && SvrManager.Instance.IsRunning) {
- worldPoint = SvrManager.Instance.leftCamera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0));
- if (Vector3.Distance(lastestPosition, SvrManager.Instance.leftCamera.transform.position) > delDistance) {
- Debug.Log("Start PositionFollower");
- lastestPosition = transform.position;
-
-
-
- transform.DOMove(worldPoint, 0.5f).SetEase(Ease.OutCubic).SetAutoKill(true);
- }
- }
- }
- }
- }
|