使用1个脚本根据标记-C#-Unity分配不同的值
我正在Unity 3D上做一个游戏。我有一个脚本,我在2个不同的字符上使用(预制) 我有一个变量叫Target使用1个脚本根据标记-C#-Unity分配不同的值,c#,unity3d,C#,Unity3d,我正在Unity 3D上做一个游戏。我有一个脚本,我在2个不同的字符上使用(预制) 我有一个变量叫Target public Transform Target; 这个剧本是传给Hero和vilain的。我想让剧本把英雄作为反派的目标,把反派作为英雄的目标。也许我可以用标签来做 非常感谢您的帮助。您可以这样做 if(Target.tag == "Hero"){ //hero Detected } 或 假设您有一个脚本,附加到这两个脚本(英雄和恶棍) 所以我找到了解决办法,非常简单,但花了我一整
public Transform Target;
这个剧本是传给Hero和vilain的。我想让剧本把英雄作为反派的目标,把反派作为英雄的目标。也许我可以用标签来做
非常感谢您的帮助。您可以这样做
if(Target.tag == "Hero"){
//hero Detected
}
或
假设您有一个脚本,附加到这两个脚本(英雄和恶棍)
所以我找到了解决办法,非常简单,但花了我一整天的时间才弄明白lol
GameObject[] protagonistOpponent = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject obst in protagonistOpponent)
obst.GetComponent<User_Stats>().Target = FKManage.Enemy.transform;
GameObject[] AntagonistOpponent = GameObject.FindGameObjectsWithTag("Enemy");
foreach (GameObject obst in AntagonistOpponent)
obst.GetComponent<User_Stats>().Target = FKManage.LocalPlayer.transform;
GameObject[]progationoppost=GameObject.FindGameObjectsWithTag(“玩家”);
foreach(主角对手中的游戏对象obst)
obst.GetComponent().Target=fkmanager.敌军.transform;
GameObject[]敌对对手=GameObject.FindGameObjectsWithTag(“敌人”);
foreach(对手中的游戏对象obst)
obst.GetComponent().Target=fkmanager.LocalPlayer.transform;
感谢所有试图帮助我的人:)这不就是将目标转换拖放到属性窗口脚本中的变量“target”上吗?是的,如果我将其设置为公共,我可以拖放,但假设我有5个不同的角色用于英雄,5个角色用于恶棍。现在我想随机调用一个英雄和一个恶棍[我已经成功完成了这么多],我想要的是所有恶棍都有敌人的标签,英雄都有玩家的标签,并自动选择对方的可视预制场。这样做可以吗?嗨,我已经看了这一页,但这没有帮助。这是我尝试过的两种方法,但在两个代码之后,相同的值被分配给两个不同标记的预制。GameObject PlayerTargets=GameObject.FindGameObjectWithTag(“玩家”);PlayerTargets=fk管理敌人;Target=PlayerTargets.transform;2如果(GameObject.FindGameObjectWithTag(“Player”){this.Target=fkmanager.敌方.transform;}如果(GameObject.FindGameObjectWithTag(“敌方”){this.Target=fkmanager.LocalPlayer.transform}我想做的是,我想要的逻辑是针对所有使用TAG PLAYERS SET TARGET=敌军的游戏对象,针对所有使用TAG ENEMEY SET TARGET=PLAYER的游戏对象,使用1 c#scriptHi,感谢您的支持。我试过了,但不幸的是脚本检查了反派的标签并更改了两者的target值,然后它下降并再次更改了两者的值。然而,我在“回答你的问题”中找到了另一种上传方式,供大家查看。
class xyz: MonoBehaviour{
public Transform Target;
void Start(){
if(this.tag == "Villan"){
//Villan Detected, assign hero
}
else if(this.tag == "Hero"){
//Hero Detected, assign Villan
}
}
}
GameObject[] protagonistOpponent = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject obst in protagonistOpponent)
obst.GetComponent<User_Stats>().Target = FKManage.Enemy.transform;
GameObject[] AntagonistOpponent = GameObject.FindGameObjectsWithTag("Enemy");
foreach (GameObject obst in AntagonistOpponent)
obst.GetComponent<User_Stats>().Target = FKManage.LocalPlayer.transform;