NETWORK_动画同步

using UnityEngine;
using System.Collections;
using System;

public class NetworkSyncAnimation : MonoBehaviour {
 
 public enum AniStates
 {
  walk = 0,
  run,
  kick,
  punch,
  jump,
  jumpfall,
  idle,
  gotbit,
  gothit,
  walljump,
  deathfall,
  jetpackjump,
  ledgefall,
  buttstomp,
  jumpland
 }
 
 public AniStates currentAnimation = AniStates.idle;
 public AniStates lastAnimation = AniStates.idle;
 
 public void SyncAnimation(String animationValue)
 {
  currentAnimation = (AniStates)Enum.Parse(typeof(AniStates), animationValue);
 }
 
 // Update is called once per frame
 void Update () {
  
  if (lastAnimation != currentAnimation)
  {
   lastAnimation = currentAnimation;
   animation.CrossFade(Enum.GetName(typeof(AniStates), currentAnimation));
   animation["run"].normalizedSpeed = 1.0F;
   animation["walk"].normalizedSpeed = 1.0F;
  }
 }
 
 void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
 {
  if (stream.isWriting)
  {
   char ani = (char)currentAnimation;
   stream.Serialize(ref ani);
  }
  else
  {
   char ani = (char)0;
   stream.Serialize(ref ani);
   
   currentAnimation = (AniStates)ani;
  } 
 }
}

原文地址:https://www.cnblogs.com/softimagewht/p/2161959.html