Chengke.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using Mirror;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityCommon;
  5. using UnityEngine;
  6. using UnityEngine.AI;
  7. namespace DTYJ
  8. {
  9. public class Chengke : NetworkBehaviour
  10. {
  11. NavMeshAgent navMeshAgent;
  12. Animator animator;
  13. int nUpdate;
  14. int animatorSpeed;
  15. public override void OnStartServer()
  16. {
  17. base.OnStartServer();
  18. animatorSpeed = Animator.StringToHash("Speed");
  19. navMeshAgent = GetComponent<NavMeshAgent>();
  20. animator = GetComponent<Animator>();
  21. nUpdate = Utility.Update(1, () =>
  22. {
  23. if (!navMeshAgent.enabled)
  24. animator.SetFloat(animatorSpeed, 0);
  25. else
  26. animator.SetFloat(animatorSpeed, navMeshAgent.remainingDistance < 0.25f ? 0 : navMeshAgent.speed);
  27. });
  28. }
  29. [ServerCallback]
  30. private void OnDestroy()
  31. {
  32. Utility.StopCoroutineExe(nUpdate);
  33. }
  34. [ServerCallback]
  35. private void OnTriggerEnter(Collider other)
  36. {
  37. if (other.name == "³öÕ¾´¥·¢"|| other.name == "³öÕ¾´¥·¢_1")
  38. {
  39. OnlineCtrl.Instance.chengKeCtrl.RemoveCK(gameObject);
  40. }
  41. else if (other.name == "TrainTrigger")
  42. {
  43. RpcSetInTrain(other.transform.parent.name);
  44. OnlineCtrl.Instance.chengKeCtrl.SetCKInTrain(other.transform.parent.name, gameObject);
  45. }
  46. }
  47. [ServerCallback]
  48. private void OnTriggerExit(Collider other)
  49. {
  50. if (other.name == "TrainTrigger")
  51. {
  52. RpcSetOutTrain();
  53. OnlineCtrl.Instance.chengKeCtrl.SetCkOutTrain(other.transform.parent.name, gameObject);
  54. }
  55. }
  56. [ClientRpc]
  57. public void RpcSetInTrain(string trainNo)
  58. {
  59. if (TrainCtrl.TrainCtrlDic.ContainsKey(trainNo))
  60. {
  61. transform.SetParent(TrainCtrl.TrainCtrlDic[trainNo].transform);
  62. }
  63. }
  64. [ClientRpc]
  65. public void RpcSetOutTrain()
  66. {
  67. transform.SetParent(null);
  68. }
  69. }
  70. }