Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using DG.Tweening;
- using RootMotion.FinalIK;
- namespace jdp{
- public class LookAtIKTweenTest : MonoBehaviour
- {
- [SerializeField] LookAtIK m_lookAtIK;
- [SerializeField] float defaultWeight = 0.68f;
- [SerializeField] float defaultFadeTime = 1f;
- Sequence cacheStareSequence;
- void Start(){
- cacheStareSequence = DOTween.Sequence();
- cacheStareSequence.Pause();
- cacheStareSequence.Append(DoFadeWeight(1f, defaultFadeTime))
- .AppendInterval(1f)
- .Append(DoFadeWeight(defaultWeight, defaultFadeTime));
- }
- public void StareNotWorking(){
- cacheStareSequence.Restart();
- }
- public void StareNotWorkingEither(){
- Sequence stareSequence = DOTween.Sequence();
- stareSequence.Pause();
- stareSequence.Append(DoFadeWeight(1f, defaultFadeTime))
- .AppendInterval(1f)
- .Append(DoFadeWeight(defaultWeight, defaultFadeTime));
- stareSequence.Play();
- }
- //Working but hacky
- public void StareWorking(){
- DoFadeWeight(1f, defaultFadeTime).OnComplete(() => {
- Invoke("TurnOnLookIK", 0.75f);
- });
- }
- public void TurnOnLookIK(){
- DoFadeWeight(defaultWeight, defaultFadeTime);
- }
- private Tween DoFadeWeight(float finalValue, float duration) {
- Tween tween = null;
- float val = m_lookAtIK.solver.GetIKPositionWeight(); // get initial value
- Debug.Log("val: " + val);
- tween = DOTween.To (() => val, x => val = x, finalValue, duration).OnUpdate (() => {
- m_lookAtIK.solver.SetLookAtWeight(val);
- });
- return tween;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement