Exemplo n.º 1
0
 /// <summary>
 /// 同步位置
 /// </summary>
 public void SyncPosition(SCPositon position)
 {
     if (syncPositionBack != null)
     {
         syncPositionBack.Invoke(position);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// 同步位置
 /// </summary>
 /// <param name="pos"></param>
 void SyncPositionBack(SCPositon pos)
 {
     if (playerUnitData.PlayerId == pos.PlayerId)
     {
         if (pos.Animation == 2 && !m_Attacking)
         {
             //旋转
             heroCharacterController.transform.eulerAngles = new Vector3(0, 90f - Mathf.Atan2(pos.Z, pos.X) * 180f / Mathf.PI, 0);
             //移动
             heroCharacterController.Move(new Vector3(pos.X, pos.Y, pos.Z) + new Vector3(0, -100f, 0));
             //动画
             PlayMove();
         }
         else if (pos.Animation == 1 && !m_Attacking)
         {
             //动画
             PlayIdle();
         }
         else if (pos.Animation == 3)
         {
             //动画
             PlayAttack();
             if (attackNPC != null)
             {
                 if (attackNPC != null)
                 {
                     Quaternion lookAtRot = Quaternion.LookRotation(attackNPC.transform.position - transform.position);
                     transform.localEulerAngles = lookAtRot.eulerAngles;
                 }
                 else if (attackPlayer != null)
                 {
                     Quaternion lookAtRot = Quaternion.LookRotation(attackPlayer.transform.position - transform.position);
                     transform.localEulerAngles = lookAtRot.eulerAngles;
                 }
             }
         }
     }
 }