Enquiry

Here is how you can enquiry UI information. The below example is trying to get a dropdown options count info from a dropdown UI.

Step 1 :

Create an empty scene with any name of your liking and open the scene.

Step 2 : Adding necessary scene game objects for this exercise.

Go to the Prefabs folder inside path UIs/Essential and drag ChessGameObjectBase prefab into the scene hierachy.

Then, create a canvas and drag the dropdown prefab located inside Base folder of path Prefabs/UIs/Dropdown into the canvas. Or create a legacy dropdown of your own on the scene, the dropdown prefab is actually the same as legacy dropdown.

Step 3 :

Copy code below to ChessEnquiryManager.cs located in Scripts/Main/Communicators folder

    public delegate int TotalDropdownOptionCount();
    public static event TotalDropdownOptionCount EnquiryTotalDropdownOptionCount;
    
    public static int GetTotalDropdownOptionCount()
    {
        var hasValue = EnquiryTotalDropdownOptionCount?.Invoke();

        if (hasValue != null)
        {
            return (int)hasValue;
        }
        else
        {
            throw new System.NullReferenceException(GenerateErrorMessage(typeof(TotalDropdownOptionCount).Name));
        }
    }

Step 4 :

Create a C# script in the path Scripts/Main/UIs/Dropdowns named DummyDropdown.cs and copy the code below into it. The GetOptionsCount() function is from the base class, getting the number of dropdown options currently the dropdown have.

namespace TheChess
{
    public class DummyDropdown : ChessDropdownUI
    {
        protected override void Subscribes()
        {
            ChessEnquiryManager.EnquiryTotalDropdownOptionCount += GetOptionsCount;
        }
    
        protected override void Unsubscribes()
        {
            ChessEnquiryManager.EnquiryTotalDropdownOptionCount -= GetOptionsCount;
        }
    }
}

Step 5 :

The code below can be called in any GUI script to get the number of dropdown options.

        Debug.Log(ChessEnquiryManager.GetTotalDropdownOptionCount());

Last updated