using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 注意:尽量用协程代替动画,直接用动画同步会出现各客户端动画播放不一致的情况。
///
public class FunctionSync_Animator : OneValueSyncObject
{
Animator anim;
List state = new List();
string currentTriger;
private void Start()
{
Init();
}
public void Init()
{
if (!hasInit)
{
anim = GetComponent();
InitDynamic("animator" + gameObject.name, CallBack, ValueType.String);
}
}
public void SetAnimatorState(string TriggerParameter)
{
if (!state.Contains(mystring))
{
state.Add(mystring);
}
currentTriger = mystring;
anim.SetTrigger(TriggerParameter);
mystring = TriggerParameter;
SendSync();
}
///
/// 回调
///
///
private void CallBack(string id,bool isEnterRoom)
{
if(!state.Contains(mystring))
{
state.Add(mystring);
currentTriger = mystring;
anim.SetTrigger(mystring);
Debug.Log("动画同步:" + id + "," + mystring);
}
else
{
if (currentTriger!=mystring)
{
currentTriger = mystring;
anim.SetTrigger(mystring);
Debug.Log("动画同步:" + id + "," + mystring);
}
}
}
}