1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using UnityEngine;
- using System.Collections;
- /* 加载bathroom场景下狗的特定的component
- * 本代码需要挂在到场景中任意Game Object下。建议挂载在Player下
- */
- public class BathroomDogComponentInstaller : MonoBehaviour
- {
- public string displayDogName; // 在gameobject中显示的名字
- private DogProperty dogProperty;
- // Start is called once before the first execution of Update after the MonoBehaviour is created
- void Start()
- {
- dogProperty = UserProperty.dogs[GameData.focusDog];
- StartCoroutine(DogComponentAdd());
- }
- // Update is called once per frame
- //void Update()
- //{
-
- //}
- IEnumerator DogComponentAdd()
- {
- // 等待一帧,确保所有 Start() 方法都执行完成
- yield return null;
- // 第一帧以后开始执行
- GameObject dog = GameObject.Find(displayDogName);
- // 加载指定的Animator controller
- Animator animator = dog.GetComponent<Animator>();
- RuntimeAnimatorController animatorController = Resources.Load<RuntimeAnimatorController>("Dog/AnimatorController/shibaInu/BathroomDogBehavior");
- if (dogProperty.breed == "shibaInu") { animatorController = Resources.Load<RuntimeAnimatorController>("Dog/AnimatorController/shibaInu/BathroomDogBehavior"); }
- animator.runtimeAnimatorController = animatorController;
- // 加载bbx collider
- BoxCollider[] boxCollider = new BoxCollider[4];
- boxCollider[0] = dog.AddComponent<BoxCollider>();
- boxCollider[0].isTrigger = false;
- boxCollider[0].center = new Vector3(0, 0.3f, 0.05f);
- boxCollider[0].size = new Vector3(0.15f, 0.21f, 0.5f);
- // 加载bbx collider 1
- boxCollider[1] = dog.AddComponent<BoxCollider>();
- boxCollider[1].isTrigger = false;
- boxCollider[1].center = new Vector3(0, 0.4f, 0.24f);
- boxCollider[1].size = new Vector3(0.15f, 0.18f, 0.16f);
- // 加载bbx collider 2
- boxCollider[2] = dog.AddComponent<BoxCollider>();
- boxCollider[2].isTrigger = false;
- boxCollider[2].center = new Vector3(0, 0.1f, 0.13f);
- boxCollider[2].size = new Vector3(0.15f, 0.18f, 0.06f);
- // 加载bbx collider 3
- boxCollider[3] = dog.AddComponent<BoxCollider>();
- boxCollider[3].isTrigger = false;
- boxCollider[3].center = new Vector3(0, 0.1f, -0.17f);
- boxCollider[3].size = new Vector3(0.15f, 0.18f, 0.06f);
- // 加载script <DogCatchDetection>
- //DogCatchDetection dogScript = dog.AddComponent<DogCatchDetection>();
- }
- }
|