Exemplo n.º 1
0
        private void Awake()
        {
            _canvas = GetComponent <Canvas>();
            if (_canvas == null)
            {
                Debug.LogError("SpriteSleeperCanvas is unable to find a Canvas component on the current object. Ensure that this component is added to the GameObject containing the Canvas.");
                return;
            }

            if (!_canvas.isRootCanvas)
            {
                Debug.LogError("SpriteSleeperCanvas should only be used on root canvases.");
                return;
            }

            _hasCanvas = true;
            _manager   = SpriteSleeperManager.Instance();

            if (_manager == null || _manager.Equals(null))
            {
                Debug.LogError("SpriteSleeperCanvas is unable to find a SpriteSleeperManager.");
                return;
            }

            _manager.AddCanvas(this);

            _spriteSleepers = new List <SpriteSleeperImage>();
            RefreshImageList();

            // Allow for canvases that start disabled to unref their images
            Invoke("OnCanvasHierarchyChanged", 0.0001f);
        }
Exemplo n.º 2
0
        public void Start()
        {
            _image   = GetComponent <Image>();
            _manager = SpriteSleeperManager.Instance();

            _manager.OnAtlasLoaded += FindTag;

            FindTag();

            Invoke("StopListeningForAtlases", 0.0001f);
        }
Exemplo n.º 3
0
        public static SpriteSleeperManager Instance()
        {
            if (_instance == null && !_destroyed)
            {
                GameObject spriteSleeperGameObject = new GameObject("SpriteSleeperManager");
                GameObject.DontDestroyOnLoad(spriteSleeperGameObject);
                spriteSleeperGameObject.hideFlags = HideFlags.DontSave | HideFlags.DontSaveInEditor | HideFlags.DontSaveInBuild;
                _instance = spriteSleeperGameObject.AddComponent <SpriteSleeperManager>();
            }

            return(_instance);
        }
        public void Start()
        {
            // 获取到挂载的Image
            _image = GetComponent <Image>();

            // 获取SpriteSleeperManager实例
            _manager = SpriteSleeperManager.Instance();

            // 每加载一个atlas,就寻找下是自己?!
            _manager.OnAtlasLoaded += FindTag;

            // 从SpriteSleeperManager中找到本Image,所在的atlas
            // 记录其tag
            // 并标记引用此tag
            FindTag();

            Invoke("StopListeningForAtlases", 0.0001f);
        }