Использование 1 скрипта для присвоения различных значений на основе тегов - C# - Unity - PullRequest
0 голосов
/ 11 марта 2020

Я делаю игру на Unity 3D. У меня есть 1 скрипт, который я использую для двух разных персонажей (префабов)

Так что у меня есть эта переменная с именем Target

public Transform Target;

Этот скрипт передается как Hero, так и vilain. Я хочу, чтобы сценарий получил Героя в качестве цели для злодея и злодея в качестве цели для героя. Может быть, я могу сделать это с тегами?

Помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 12 марта 2020

Так что я нашел решение, довольно простое, но мне потребовался целый день, чтобы выяснить, смеется.

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;

Спасибо всем, кто пытался помочь мне:)

0 голосов
/ 12 марта 2020

Вы можете сделать что-то вроде этого

if(Target.tag == "Hero"){
//hero Detected
}

или

if(Target.tag == "Villan"){
//Villan Detected
}

Предположим, у вас есть скрипт, прикрепленный к обоим (Герой и Виллан)

 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
        }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...