| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | 
							- using UnityEngine;
 
- /* 组件-射击目标-靶子 */
 
- public class TargetBody : MonoBehaviour
 
- {
 
-     [SerializeField] GameObject cameraForTargetView;
 
-     float distance = 10f;
 
-     public static TargetBody ins;
 
-     void Start()
 
-     {
 
-         ins = this;
 
-         SetDistance(distance);
 
-     }
 
-     void OnDestroy()
 
-     {
 
-         if (ins == this) ins = null;
 
-     }
 
-     void Update()
 
-     {
 
-         TargetView targetView = TargetView.ins;
 
-         if (targetView && targetView.IsOpen() != cameraForTargetView.activeSelf) {
 
-             cameraForTargetView.SetActive(targetView.IsOpen());
 
-         }
 
-     }
 
-     public void Hit(Arrow arrow, Vector3 hitPosition) {
 
-         if (PointSignLastHit.ins) PointSignLastHit.ins.Show(hitPosition);
 
-         arrow.Hit();
 
-         AudioMgr.ins.PlayHit(AudioMgr.GetAudioSource(this.gameObject));
 
-         bool hitTarget = false;
 
-         if (arrow.armBow.validTargets.Contains(this)) {
 
-             float maxSize = Vector3.Distance(this.transform.Find("CenterPoint").position, this.transform.Find("SidePoint").position);
 
-             float radius = this.measureRadius(hitPosition);
 
-             float score = Mathf.Clamp(10f - radius / maxSize * 10f, 0, 9.9f) + 1;
 
-             if (score >= 1) {
 
-                 score = (float)System.Math.Round((double)score, CommonConfig.ringsPrecision);
 
-                 GameMgr.ins.gameMode.HitTarget(score);
 
-                 //AudioMgr.ins.PlayCheer(true);
 
-                 hitTarget = true;
 
-             }
 
-         }
 
-         if (!hitTarget) {
 
-             GameMgr.ins.gameMode.HitTarget(0);
 
-             //AudioMgr.ins.PlayCheer(false);
 
-         }
 
-         arrow.hitType = hitTarget ? Arrow.HitType.TargetInRing : Arrow.HitType.TargetOutRing; 
 
-     }
 
-     float measureRadius(Vector3 position) {
 
-         return Vector3.Distance(this.transform.Find("CenterPoint").position, position);
 
-     }
 
-     public void SetDistance(float value) {
 
-         distance = value;
 
-         Vector3 v3 = this.transform.parent.localPosition;
 
-         v3.x = 30 - GameMgr.RealSizeToGameSize(value);
 
-         this.transform.parent.localPosition = v3;
 
-     }
 
-     public float GetDistance() {
 
-         return distance;
 
-     }
 
- }
 
 
  |