예제 #1
0
        private void UpdateConfiguration()
        {
            if (_cof == null || _equip == null || !_configChanged)
            {
                return;
            }

            _configChanged = false;

            for (int i = _layers.Count; i < _cof.layerCount; ++i)
            {
                var   cofLayer = _cof.layers[i];
                Layer layer    = new Layer();
                layer.gameObject = new GameObject(cofLayer.name);
                layer.transform  = layer.gameObject.transform;
                layer.transform.SetParent(transform, false);
                layer.renderer = layer.gameObject.AddComponent <SpriteRenderer>();
                var shadowObject = new GameObject("shadow");
                shadowObject.transform.SetParent(layer.transform, false);
                shadowObject.transform.localScale = new Vector3(1, 0.5f);
                layer.shadow                = shadowObject.AddComponent <SpriteRenderer>();
                layer.shadow.material       = _shadowMaterial;
                layer.shadow.sortingLayerID = SortingLayers.Shadow;
                _layers.Add(layer);
            }

            for (int i = 0; i < _layers.Count; ++i)
            {
                var layer = _layers[i];
                if (i >= _cof.layerCount)
                {
                    layer.gameObject.SetActive(false);
                    continue;
                }

                var    cofLayer = _cof.layers[i];
                string equip    = this.equip[cofLayer.compositIndex];
                if (equip == null || equip == "")
                {
                    layer.gameObject.SetActive(false);
                    continue;
                }

                var spritesheetFilename = _cof.GetSpritesheetFilename(cofLayer, equip);
                layer.spritesheet = Spritesheet.Load(spritesheetFilename);
                if (layer.spritesheet == null)
                {
                    layer.gameObject.SetActive(false);
                    continue;
                }
                layer.renderer.material = cofLayer.material;
                layer.gameObject.SetActive(true);
                layer.shadow.gameObject.SetActive(cofLayer.shadow && shadow);
                _layers[i] = layer;
            }
        }
예제 #2
0
        void UpdateConfiguration()
        {
            if (_cof == null || _equip == null || !configChanged)
            {
                return;
            }

            configChanged = false;
            frameDuration = _cof.frameDuration;
            if (frameCount == 0)
            {
                frameCount = _cof.framesPerDirection;
            }

            if (modeChanged)
            {
                Restart();
                modeChanged = false;
            }

            for (int i = layers.Count; i < _cof.layerCount; ++i)
            {
                var   cofLayer = _cof.layers[i];
                Layer layer    = new Layer();
                layer.gameObject = new GameObject(cofLayer.name);
                layer.transform  = layer.gameObject.transform;
                layer.transform.SetParent(transform, false);
                layer.renderer = layer.gameObject.AddComponent <SpriteRenderer>();
                var shadowObject = new GameObject("shadow");
                shadowObject.transform.SetParent(layer.transform, false);
                shadowObject.transform.localScale = new Vector3(1, 0.5f);
                layer.shadow                  = shadowObject.AddComponent <SpriteRenderer>();
                layer.shadow.material         = shadowMaterial;
                layer.shadow.sortingLayerName = "Shadow";
                layers.Add(layer);
            }

            for (int i = 0; i < layers.Count; ++i)
            {
                var layer = layers[i];
                if (i >= _cof.layerCount)
                {
                    layer.gameObject.SetActive(false);
                    continue;
                }

                var    cofLayer = _cof.layers[i];
                string equip    = this.equip[cofLayer.compositIndex];
                if (equip == null || equip == "")
                {
                    layer.gameObject.SetActive(false);
                    continue;
                }

                var spritesheetFilename = _cof.GetSpritesheetFilename(cofLayer, equip);
                try
                {
                    layer.spritesheet       = Spritesheet.Load(spritesheetFilename);
                    layer.renderer.material = cofLayer.material;
                    layers[i] = layer;
                    layer.gameObject.SetActive(true);
                    layer.shadow.gameObject.SetActive(cofLayer.shadow && shadow);
                }
                catch (FileNotFoundException e)
                {
                    Debug.LogWarning("Spreadsheet file not found \"" + spritesheetFilename + "\"");
                    layer.gameObject.SetActive(false);
                }
            }
        }