대상과의 거리를 기준으로 정렬

1461 단어
이런 기능을 실현하는 데는 여러 가지가 있는데, 다음은 내가 개인적으로 비교적 좋다고 생각하는 실현 방법이다
[code]phpcode:
/*

* @     :2015.8.12.8:59

* @                

* @    :

* @     :

* @   :     ,        

* 

*/

using UnityEngine;
using System.Collections;
using System.Collections.Generic;


public class Sort : MonoBehaviour {

    public List list;
	// Use this for initialization
	void Start () {
        list = new List();

        AddAllCubes();
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
    void OnGUI()
    {
        DisplaySortOnGUI();
        if (GUILayout.Button("SortObjsByDistance"))
        {
            SortObjsByDistance();
        }
    }

    void AddAllCubes()
    {
        GameObject[] go = GameObject.FindGameObjectsWithTag("cube");
        foreach(GameObject cube in go)
        {
            list.Add(cube.transform);
        }
    }
    void SortObjsByDistance()
    {
        list.Sort(delegate(Transform t1,Transform t2)
        {
            Debug.Log(Vector3.Distance(t1.position, transform.position).CompareTo(Vector3.Distance(t2.position, transform.position)));
            return Vector3.Distance(t1.position, transform.position).CompareTo(Vector3.Distance(t2.position, transform.position));
        });
    }

    void DisplaySortOnGUI()
    {
        foreach (Transform t in list)
        {
            GUILayout.Label(t.name);
        }
    }

}

좋은 웹페이지 즐겨찾기