<p style="margin: 10px auto; padding-top: 0px; padding-bottom: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.5px;">来自UNITY3D RPG教程</p>
using UnityEngine;
using System.Collections;
using System.Collection.Generic;
public class Targetting:MonoBehaviour{
public List<Transform> targets;
public Transform selectTarget;
void Start(){
targets=new List<Transform>();
selectTarget=null;
addAllElements();
targetEnemy();
}
void Update(){
if(GetKeyDown(KeyCode.Tab)){
targetEnemy();
}
}
public void addAllElements(){
GameObject[] go=GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject enemy in go){
addTarget(enemy.transform);
}
}
private void addTarget(Transform enemy){
targets.Add(enemy);
}
private void sortTargetByDistance(){
targets.Sort(delegate(Transform t1,Transform t2){
return Vector3.Distance(t1.position,transform.position).ComparaTo(Vector3.Distance(t2.position,transform.position));
});
}
public void targetEnemy(){
if(SelectTarget==null){
sortTargetByDistance();
selectTarget=targets[0];
}
else{
int index=targets.IndexOf(selectTarget) ;
if(index<targets.Count-1){
index++;
}
else{
index=0;
}
DeSelectTarget();
selectTarget=targets[index];
}
SeleteTarget();
}
private void SelectTarget(){
selectTarget.renderer.material.color = Color.green;
}
private void DeSelectTarget(){
selectTarget.renderer.material.color = Color.red;
selectTarget = null;
}
}