在Unity3D中以编程方式将目标分配给脚本

时间:2017-03-08 05:05:38

标签: unity3d target

在我试图创造的游戏中,正在产生敌人。基础敌人包含一个名为" ShootableBox"其中目标是"播放器"。但是,当创建克隆敌人时,脚本没有"播放器"目标了,我想分配它们就像在Inspector中分配它们一样。

这是我的产卵代码:

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class Spawn : MonoBehaviour {

public GameObject enemy;
public Transform [] spawnPoints;

// Use this for initialization
void Start () {
    InvokeRepeating ("SpawnEnemy", 5.0f, 5.0f);
}

void Update() {

}

public void SpawnEnemy() {
    int spawnPointIndex = Random.Range (0, spawnPoints.Length);
    Instantiate (enemy, spawnPoints [spawnPointIndex].position, spawnPoints [spawnPointIndex].rotation);
}
}

我该如何分配它们?我道歉,我还是新手。但是谢谢你的帮助。

2 个答案:

答案 0 :(得分:3)

为玩家对象提供类似“玩家”的标签。在实例化敌人之后,您可以引用该实例的脚本并在那里分配目标。

ShootableBox enemyScript = enemy.GetComponent<ShootableBox>();

GameObject player = GameObject.FindGameObjectByTag("Player");

enemyScript.target = player;

答案 1 :(得分:0)

而是将播放器预制件分配到场景层次结构中的ShootableBox,将其分配到文件夹层次结构(敌人所在的位置)或使用colby answer。