using UnityEngine; using System.Collections; public class duilie : MonoBehaviour { object[] objs; public ArrayList DL; public void Start() { DL = new ArrayList(); objs = GameObject.FindSceneObjectsOfType(typeof(Transform)); foreach (Transform tr in objs) { if (tr.GetComponent<SphereCollider>()) { DL.Add(tr); } } Debug.Log((DL[0] as Transform).name); Debug.Log((DL[1] as Transform).name); } void Update() { if (Input.GetKeyDown(KeyCode.D))//一字长蛇阵 { StopAllCoroutines(); for (int i = 1; i < DL.Count; i++) { GameObject obj = (DL[i] as Transform).gameObject; Debug.Log(obj.name); Vector3 _begin = obj.transform.position; Vector3 _end = (DL[0] as Transform).position + new Vector3(2, 0, 0) * i; StartCoroutine(Z_TWEEN.TweenPosition(obj, _begin, _end, 1)); } } if (Input.GetKeyDown(KeyCode.F))//雁行阵 { StopAllCoroutines(); for (int i = 1; i <= DL.Count / 2; i++) { GameObject obj_zuo = (DL[i] as Transform).gameObject; GameObject obj_you = (DL[DL.Count - i] as Transform).gameObject; Vector3 _begin1 = obj_zuo.transform.position; Vector3 _end1 = (DL[0] as Transform).position + new Vector3(2, 2, 0) * i; Vector3 _begin2 = obj_you.transform.position; Vector3 _end2 = (DL[0] as Transform).position + new Vector3(2, -2, 0) * i; StartCoroutine(Z_TWEEN.TweenPosition(obj_zuo, _begin1, _end1, 1)); StartCoroutine(Z_TWEEN.TweenPosition(obj_you, _begin2, _end2, 1)); } } if (Input.GetKeyDown(KeyCode.A)) //龟甲阵 { StopAllCoroutines(); float jiaodu = 2*Mathf.PI / (DL.Count-1); Debug.Log(jiaodu); float x, y; for (int i = 1; i < DL.Count; i++) { GameObject obj = (DL[i] as Transform).gameObject; Vector3 _begin = obj.transform.position; x = Mathf.Sin(jiaodu * (i-2)) * 5; y = Mathf.Cos(jiaodu * (i-2)) * 5; Vector3 _end = new Vector3(x, y, 0)+(DL[0]as Transform).position; print(Mathf.Sin(-90f/3.1415926f)); StartCoroutine(Z_TWEEN.TweenPosition(obj, _begin, _end, 1)); } } if (Input.GetKeyDown(KeyCode.S))//箭矢阵 { StopAllCoroutines(); for (int i = 1; i < DL.Count ; i++) { if (i <= 2) { GameObject obj_zuo = (DL[i] as Transform).gameObject; GameObject obj_you = (DL[DL.Count - i] as Transform).gameObject; Vector3 _begin1 = obj_zuo.transform.position; Vector3 _end1 = (DL[0] as Transform).position + new Vector3(1, 1, 0) * i; Vector3 _begin2 = obj_you.transform.position; Vector3 _end2 = (DL[0] as Transform).position + new Vector3(1, -1, 0) * i; StartCoroutine(Z_TWEEN.TweenPosition(obj_zuo, _begin1, _end1, 1)); StartCoroutine(Z_TWEEN.TweenPosition(obj_you, _begin2, _end2, 1)); } else if(i>2&&i<=DL.Count-3) { GameObject obj = (DL[i] as Transform).gameObject; Debug.Log(obj.name); Vector3 _begin = obj.transform.position; Vector3 _end = (DL[0] as Transform).position + new Vector3(2, 0, 0) * (i-2); StartCoroutine(Z_TWEEN.TweenPosition(obj, _begin, _end, 1)); } } } } }