| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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<Transform> _targetAnimalParts;
- public List<Transform> targetAnimalParts {
- get {
- if (_targetAnimalParts == null) {
- _targetAnimalParts = new List<Transform>();
- GetTargetAnimalParts(transform, _targetAnimalParts);
- }
- return _targetAnimalParts;
- }
- }
- private void GetTargetAnimalParts(Transform transformBase, List<Transform> 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");
- }
- }
|