Изменить цвет объекта в зависимости от выбора предыдущего игрока? - PullRequest
0 голосов
/ 15 мая 2019

В моем проекте Unity есть 2 сцены с возможностью выбора.Чтобы получить доступ к второй сцене, например, с оружием, вы должны выбрать персонажа в первой сцене.Я хотел бы изменить цвет оружия в зависимости от того, какого персонажа я выбрал в сцене выбора персонажа.Как мне подойти к этому, если все работает на массивах?Вот мой сценарий, который я реализую в сцене выбора персонажа:

 {
     private GameObject[] characterList;
     private int index;

     private void Start()
     {
         index = PlayerPrefs.GetInt("CharacterSelected");

         characterList = new GameObject[transform.childCount];

         //array w players
         for (int i = 0; i < transform.childCount; i++)

             characterList[i] = transform.GetChild(i).gameObject;

         foreach (GameObject go in characterList)

             go.SetActive(false);
             if (characterList[index])
                 characterList[index].SetActive(true);


     }

     public void ToggleLeft()
     {
         characterList[index].SetActive(false);  //turning off the old character

         index --;
         if (index < 0)
             index = characterList.Length - 1;

         characterList[index].SetActive(true);

     }

      public void ToggleRight()
     {
         characterList[index].SetActive(false);  //turning off the old character

         index++;
         if (index == characterList.Length)
             index = 0;
             characterList[index].SetActive(true);

     }

     public void GoBackToCharacter()
     {

         PlayerPrefs.SetInt("CharacterSelected", index);
         SceneManager.LoadScene("WeaponSelect");


     }

 }

1 Ответ

0 голосов
/ 15 мая 2019

Ваш вопрос относится к сохраняющемуся состоянию в приложении.Я бы предложил использовать статический класс для сохранения свойств символов в течение всего времени жизни вашего приложения (сцена 1 и сцена 2), а также при необходимости обращаться к соответствующему свойству.Ниже приведен базовый пример:

public static class CharacaterClass
 {
   public static string Weapon {get; set; }
   public static string Color {get; set; }
 }

Установить оружие персонажей в scene1 (Form1)

 Character.Weapon = "gun";

, а затем захватить оружие этих персонажей в scene2 (Form2)

 var charWeapon = Character.Weapon;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...