void Init()
    {
        callback = GetComponent <CSCallback>();

        if (GameObject.Find("CharacterSelectorRoot") == null)
        {
            root                  = new GameObject();
            root.name             = "CharacterSelectorRoot";
            root.transform.parent = Camera.main.transform;
        }

        materials = new Material[characters.Length];

        int index = 0;

        foreach (Character _char in characters)
        {
            _char.obj.SetActive(true);
            _char.obj.transform.parent        = root.transform;
            _char.obj.transform.localPosition = new Vector3(index * xOffset, 0, 0);
            _char.obj.transform.localScale    = startObjectScale;
            materials[index] = _char.obj.GetComponent <Renderer>().material;

            if (_char.opened == false)
            {
                _char.obj.GetComponent <Renderer>().material = closeMaterial;
            }

            index++;
        }

        root.SetActive(false);

        priceText = buyUIButton.GetComponentInChildren <Text>();

        if (callback)
        {
            callback.OnInit();
        }
    }