예제 #1
0
 public void registerAutoAtlas(Sprite3D sprite)
 {
     if (sprite.texture == null)
     {
         return;
     }
     if (string.IsNullOrEmpty(sprite.autoAtlasTag))
     {
         sprite.SetUV(new AtlasInfo.UVDetail
         {
             uvBL   = new Vector2(0f, 0f),
             uvTL   = new Vector2(0f, 1f),
             uvBR   = new Vector2(1f, 0f),
             uvTR   = new Vector2(1f, 1f),
             width  = sprite.texture.width,
             height = sprite.texture.height
         });
         return;
     }
     Canvas3DImpl.AutoAtlasInfo autoAtlasInfo = null;
     if (!this.m_atlas.TryGetValue(sprite.autoAtlasTag, out autoAtlasInfo))
     {
         autoAtlasInfo = new Canvas3DImpl.AutoAtlasInfo();
         this.m_atlas.Add(sprite.autoAtlasTag, autoAtlasInfo);
     }
     autoAtlasInfo.Register(sprite);
     this.m_needRebuildAtlas = true;
 }
예제 #2
0
 private void _DoRebuildAtlas()
 {
     DictionaryView <string, Canvas3DImpl.AutoAtlasInfo> .Enumerator enumerator = this.m_atlas.GetEnumerator();
     while (enumerator.MoveNext())
     {
         KeyValuePair <string, Canvas3DImpl.AutoAtlasInfo> current = enumerator.Current;
         Canvas3DImpl.AutoAtlasInfo value = current.get_Value();
         if (value.needRebuildAtlas)
         {
             value.Rebuild();
         }
     }
 }
예제 #3
0
 public void unregisterAutoAtlas(Sprite3D sprite)
 {
     if (sprite.texture == null || string.IsNullOrEmpty(sprite.autoAtlasTag))
     {
         return;
     }
     Canvas3DImpl.AutoAtlasInfo autoAtlasInfo = null;
     if (!this.m_atlas.TryGetValue(sprite.autoAtlasTag, out autoAtlasInfo))
     {
         return;
     }
     autoAtlasInfo.Unregister(sprite);
 }