1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using ChivaXR;
- using System;
- public class AniDriver_MoveToTarget : AnimationDriverBase
- {
- public GameObject moveObj;
- public Vector3 targetPos;
- [SerializeField]
- private Vector3 initPos;
- public float speed = 1;
- public override void FinishedState()
- {
- initPos = moveObj.transform.position;
- moveObj.transform.position = targetPos;
- }
- public override void InitState()
- {
- moveObj.transform.position = initPos;
- }
- public override void StartPlay(Action finishedCallBack = null)
- {
- StartAniCoroutine(MoveToTargetVector(finishedCallBack));
- }
- IEnumerator MoveToTargetVector(Action finishedCallback)
- {
- while (moveObj.transform.position != targetPos)
- {
- moveObj.transform.position = Vector3.MoveTowards(moveObj.transform.position, targetPos, speed * Time.deltaTime);
- yield return new WaitForEndOfFrame();
- }
- finishedCallback?.Invoke();
- }
- }
|