敌人选择

<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;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值