using System.Collections; using System.Collections.Generic; using UnityEngine; /* 组件-射击目标-动物 */ public class TargetAnimal : MonoBehaviour { public Transform animalsBaseT { get { return this.transform.parent; } } public Vector3 hunterPosition { get { return ArmBow.ins.transform.position; } } //获取猎人到我的指针向量 public Vector3 GetPointerHunterToMe() { Vector3 hunterPos = hunterPosition; Vector3 myPos = transform.position; hunterPos.y = myPos.y; return myPos - hunterPos; } public virtual void OnHit(Arrow arrow, Vector3 hitPoint, string partName) { } public void RotateByWorldY(float angle) { transform.forward = Quaternion.AngleAxis(angle, Vector3.up) * transform.forward; } //碰撞体 private List _targetAnimalParts; public List targetAnimalParts { get { if (_targetAnimalParts == null) { _targetAnimalParts = new List(); GetTargetAnimalParts(transform, _targetAnimalParts); } return _targetAnimalParts; } } private void GetTargetAnimalParts(Transform transformBase, List outList) { for (int i = 0; i < transformBase.childCount; i++) { Transform child = transformBase.GetChild(i); if (child.gameObject.name.StartsWith("TargetAnimalPart")) { outList.Add(child); } GetTargetAnimalParts(child, outList); } } public virtual int GetOnlineID() { throw new System.Exception("No OnlineID"); } }