DogPlaygroundComponentInstall.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using UnityEditor.Animations;
  2. using UnityEngine;
  3. using System.Collections;
  4. /* 加载playground场景下狗的特定的component
  5. */
  6. public class DogPlaygroundComponentInstall : MonoBehaviour
  7. {
  8. public string displayDogName; // 在gameobject中显示的名字
  9. public DogProperty dogProperty;
  10. // Start is called once before the first execution of Update after the MonoBehaviour is created
  11. void Start()
  12. {
  13. dogProperty = UserProperty.dogs[GameData.focusDog];
  14. StartCoroutine(DogComponentAdd());
  15. }
  16. // Update is called once per frame
  17. //void Update()
  18. //{
  19. //}
  20. IEnumerator DogComponentAdd()
  21. {
  22. // 等待一帧,确保所有 Start() 方法都执行完成
  23. yield return null;
  24. // 第一帧以后开始执行
  25. GameObject dog = GameObject.Find(displayDogName);
  26. // 加载指定的Animator controller
  27. Animator animator = dog.GetComponent<Animator>();
  28. AnimatorController animatorController = new AnimatorController();
  29. if (dogProperty.breed == "shibaInu") { animatorController = Resources.Load<AnimatorController>("Dog/AnimatorController/shibaInu/PlaygroundDogBehavior"); }
  30. animator.runtimeAnimatorController = animatorController;
  31. // 加载bbx collider
  32. BoxCollider boxCollider = dog.AddComponent<BoxCollider>();
  33. boxCollider.isTrigger = true;
  34. boxCollider.center = new Vector3(0, 0.225f, 0);
  35. boxCollider.size = new Vector3(0.2f, 0.45f, 0.6f);
  36. // 加载script <DogCatchDetection>
  37. DogCatchDetection dogScript = dog.AddComponent<DogCatchDetection>();
  38. }
  39. }