using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; //靶子类 //该靶子在平常情况下会在轨道上面移动 //当靶子被打倒时停止 public class Target_1 : Hurtable { [Range(0.0f,10f)] public float speed; //运动的起始与结束位置 private float nowX; public float startX; public float endX; //运动方向 private bool isLeft; private bool isActive; // Use this for initialization void Start () { deathEvent.AddListener(StopMode); nowX = myself_1.transform.localPosition.x; isLeft = false; isActive = true; } // Update is called once per frame void Update () { if (isActive) { ActiveMode(); } } //靶子在轨道上面运动的模式 public void ActiveMode() { if (nowX < endX && isLeft) { myself_1.transform.localPosition += new Vector3(Time.deltaTime * speed, 0, 0); nowX += Time.deltaTime * speed; } else if (nowX > startX && !isLeft) { myself_1.transform.localPosition -= new Vector3(Time.deltaTime * speed, 0, 0); nowX -= Time.deltaTime * speed; } if (nowX >= endX && isLeft) { isLeft = false; } else if(nowX <=startX && !isLeft) { isLeft = true; } } //靶子在轨道上面停止的模式 public void StopMode() { isActive = false; gameObject.AddComponent(); gameObject.GetComponent().enabled = false; gameObject.transform.localEulerAngles += new Vector3(5f,0f,0f); } }