在Unity3D中以编程方式将目标指定给脚本

在Unity3D中以编程方式将目标指定给脚本,unity3d,target,Unity3d,Target,在我试图创建的游戏中,敌人正在繁殖。基本敌人包含一个名为“ShootableBox”的脚本,其中目标是“玩家”。但是,当克隆人敌人被创建时,脚本不再有“玩家”目标,我想分配它们,就像在Inspector中分配它们一样 这是我的繁殖代码: using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; public class Spawn : MonoBehaviour { public GameO

在我试图创建的游戏中,敌人正在繁殖。基本敌人包含一个名为“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);
}
}

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

给玩家对象一个类似“玩家”的标签。在敌人被实例化之后,你可以引用该实例的脚本并在那里分配目标

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

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

enemyScript.target = player;
ShootableBox-enemyScript=敌方.GetComponent();
GameObject player=GameObject.FindGameObjectByTag(“玩家”);
enemyScript.target=玩家;

给玩家对象一个类似“玩家”的标签。在敌人被实例化之后,你可以引用该实例的脚本并在那里分配目标

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

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

enemyScript.target = player;
ShootableBox-enemyScript=敌方.GetComponent();
GameObject player=GameObject.FindGameObjectByTag(“玩家”);
enemyScript.target=玩家;

将玩家预置分配到场景层次中的ShootableBox,将其分配到文件夹层次(敌人基地所在地)或使用科尔比答案。

将玩家预置分配到场景层次中的ShootableBox,将其分配到文件夹层次中(你的基地敌人所在地)或使用科尔比答案。

嗨。我的ShootableBox脚本没有包含目标的定义。我如何分配?我道歉并感谢你。你说它已经为播放器设置了目标,但克隆人没有。请给我们看ShootableBox脚本。Wanda,通常当你在inspector中分配某些内容时,你必须创建一个公开游戏对象敌人就像你在繁殖脚本中所做的那样。如果你想让敌人脚本包含玩家的目标,你必须在该脚本中为目标创建一个类似的字段,然后将其设置为
target=GameObject.FindGameObjectByTag(“玩家”)
就像科尔比在回答中所做的那样。嗨,我的ShootableBox脚本没有包含目标的定义。我该如何分配它?我道歉并感谢你。你说它已经为播放器设置了目标,但克隆人没有。请给我们看ShootableBox脚本。旺达,通常当你在inspector中分配一些东西时,你必须创建它一个
public GameObject敌方
就像你在生成脚本中所做的那样。如果你想让敌方脚本包含玩家的目标,你必须在该脚本中为目标创建一个这样的字段,然后像科尔比在回答中所做的那样,将其设置为
target=GameObject.FindGameObjectByTag(“player”);