B1. Tại thẻ Project, nhấp chuột chọn Evil Cube, qua thẻ Inspector, bỏ dấu stick ở file Enemy AI (Script).
B2. Vẫn đang chọn Evil Cube, tại thẻ Inspector, nhấp vào nút Untagged và chọn Add Tag và gõ vào Element 0 từ Enemy. Nhấp chuột chọn lại Evil Cube và chọn Tag là Enemy
B3. Tại thẻ Hierarchy, nhấp chọn Evil Cube và ấn Ctrl + D 2 lần để tạo ra thêm 2 Evil Cube giống như lúc đầu. Đổi tên 3 Evil Cube này lại thành Evil Cubie 1, Evil Cubie 2 và Evil Cubie 3.
B4.Nhấp phải vào thư mục Script và chọn Creat | C# Script và đặt tên file là Targetting.
B5. Double click vào file C# vừa tạo và chèn đoạn code sau vào:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Targetting : MonoBehaviour {
public List<Transform> targets;
public Transform selectedTarget;
private Transform myTransform;
// Use this for initialization
void Start () {
targets = new List<Transform>();
selectedTarget = null;
myTransform = transform;
AddAllEnemies();
}
public void AddAllEnemies(){
GameObject[] go = GameObject.FindGameObjectsWithTag("Enemy");
foreach(GameObject enemy in go)
AddTarget(enemy.transform);
}
public void AddTarget(Transform enemy){
targets.Add (enemy);
}
private void SortTargetsByDistance(){
targets.Sort(delegate(Transform t1, Transform t2){
return Vector3.Distance(t1.position, myTransform.position).CompareTo(Vector3.Distance(t2.position, myTransform.position));
});
}
private void TargetEnemy(){
if(selectedTarget == null){
SortTargetsByDistance();
selectedTarget = targets[0];
}
else{
int index = targets.IndexOf (selectedTarget);
if(index < targets.Count - 1){
index++;
}
else{
index = 0;
}
DeselectTarget();
selectedTarget = targets[index];
}
SelectTarget();
}
private void DeselectTarget(){
selectedTarget.renderer.material.color = Color.blue;
selectedTarget = null;
}
private void SelectTarget(){
selectedTarget.renderer.material.color = Color.red;
PlayerAttack pa = (PlayerAttack)GetComponent("PlayerAttack");
pa.target = selectedTarget.gameObject;
}
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.Tab)){
TargetEnemy();
}
}
}
B6. Kéo thả file C# vừa tạo ở bước trên vào Player ở thẻ Hierarchy.
B7. Sử dụng công cụ Tranform tool và di chuyển 3 Evil Cubie ra 3 nơi khác nhau như sau:
B8. Nhấn nút Play để kiểm tra thành quả. Trong khi chơi, bạn có thể ấn Tab để chọn mục tiêu (màu đỏ) mới có thể tấn công được.