Esempio n. 1
0
        protected virtual void buildUvs(UVChannelFlags channel)
        {
            using (new ProfilerSample("Build Uvs"))
            {
                var uvs        = MeshCache.GetUvs(_generation.graphic.mesh, channel);
                var targetList = _generation.uvs[channel.Index()];

                targetList.AddRange(uvs);

                //If we cannot remap this channel, just return
                if ((_generation.graphic.remappableChannels & channel) == 0)
                {
                    return;
                }

                UnityEngine.Object key;
                if (_textureFeatures.Count > 0)
                {
                    key = _textureFeatures[0].featureData[_generation.graphicIndex].texture;
                }
                else if (_spriteFeatures.Count > 0)
                {
                    key = _spriteFeatures[0].featureData[_generation.graphicIndex].sprite;
                }
                else
                {
                    return;
                }

                Rect rect = _atlasUvs.GetRect(channel.Index(), key);
                MeshUtil.RemapUvs(targetList, rect, uvs.Count);
            }
        }