Один скрипт, изменяющий несколько изображений пользовательского интерфейса, но он не работает - PullRequest
1 голос
/ 21 марта 2020

У меня проблемы с этим кодом, который я пытаюсь создать.

Моя цель: Сделать так, чтобы у каждой кнопки уровня также был уровень этого уровня, но я пытаясь сделать это из одного скрипта.

Во-первых, вот как я все настроил:

enter image description here

Это ряды внутри каждая кнопка и сценарий Rankdictator , который я сделал внутри каждого игрового объекта ранга.

Вот сценарий для Rankdictator :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Rankdictator : MonoBehaviour
{
    int levelnumberrank;
    private Image thisimage;
    public Sprite rankgold;
    public Sprite ranksilver;
    public Sprite rankbronze;
    public Sprite blank;
    private Levellockcheck levellockcheck;

    public void Start()
    {

        levellockcheck = FindObjectOfType<Levellockcheck>();
        thisimage = this.GetComponent<Image>();
        levelnumberrank = PlayerPrefs.GetInt(("rankoflevel") + (levellockcheck.thisbuttonlevel));
        if(levelnumberrank == 3)
        {
            thisimage.sprite = rankgold;
        }
        else if(levelnumberrank == 2)
        {
            thisimage.sprite = ranksilver;
        }
        else if (levelnumberrank == 1)
        {
            thisimage.sprite = rankbronze;
        }
        else if (levelnumberrank == 0)
        {
            thisimage.sprite = blank;
        }
    }
}

сейчас вот проблема. Как я уже сказал, ранги не отображаются на каждой кнопке правильно, когда активно несколько кнопок , однако , когда у меня активна только одна кнопка, ранг показывает . Вот пример:

enter image description here

Это когда у меня активны обе кнопки. (Уровень 1 должен иметь полный ранг, а уровень 2 должен иметь низкий ранг. Но он ничего не показывает)

Теперь, когда активна только одна кнопка. Он показывает правильно.

enter image description here

Edit

Я уже использовал Debug.Log для подтверждения уровня номера на каждой кнопке, и он ссылается, как и ожидалось ,

Но он по-прежнему не ссылается на ранг каждой кнопки, когда все они активны, а только когда одна кнопка активна, а остальные неактивны.

1 Ответ

1 голос
/ 21 марта 2020

Я понял проблему: это была проверка уровня блокировки!

На каждой кнопке был сценарий проверки уровня блокировки с опубликованным c int thisbuttonlevel.

Я был, на каждом Rankdictator , ссылаясь на контрольную проверку уровня следующим образом:

Levellockcheck = FindObjectofType<levellockcheck>();

levelnumberrank = PlayerPrefs.GetInt(("rankoflevel") + (levellockcheck.thisbuttonlevel));

Делая это, я ссылаюсь на разные числа одновременно на каждой отдельной кнопке. Потому что (thisbuttonlevel) на каждой кнопке был разным.

Что я должен был делать на Rankdictator:

Levellockcheck = this.GetComponentInParent<levellockcheck>();

Делая это, я ссылался на (thisbuttonlevel) самой кнопки.

А теперь:

enter image description here

Работает!

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