public static tk2dSpriteCollectionData CreateFromTexture(Texture texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent<tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; sc.material = new Material(Shader.Find("tk2d/BlendVertexColor")); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; float scale = 2.0f * size.orthoSize / size.targetHeight; // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(texture, scale, regions[i], anchors[i]); sc.spriteDefinitions[i].name = names[i]; } foreach (var def in sc.spriteDefinitions) def.material = sc.material; return sc; }
public static tk2dSpriteCollectionData CreateFromTexture(Texture2D texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent <tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; string shaderName = "tk2d/BlendVertexColor"; #if UNITY_EDITOR { Shader ts = Shader.Find(shaderName); string assetPath = UnityEditor.AssetDatabase.GetAssetPath(ts); if (assetPath.ToLower().IndexOf("/resources/") == -1) { Debug.LogError("tk2dRuntimeSpriteCollection.CreateFromTexture - the tk2d/BlendVertexColor shader needs to be in a resources folder for this to work.\n" + "Please create a subdirectory named 'resources' where the shaders are, and move the BlendVertexColor shader into this directory.\n\n" + "eg. TK2DROOT/tk2d/Shaders/Resources/BlendVertexColor" + "\n\n\n\n\n"); return(null); } } #endif sc.material = new Material(Shader.Find(shaderName)); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; float scale = 2.0f * size.orthoSize / size.targetHeight; // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(texture, scale, regions[i], anchors[i]); sc.spriteDefinitions[i].name = names[i]; } foreach (var def in sc.spriteDefinitions) { def.material = sc.material; } return(sc); }
/// <summary> /// Create a sprite (and gameObject) displaying the region of the texture specified. /// Use <see cref="tk2dSpriteCollectionData.CreateFromTexture"/> if you need to create a sprite collection /// with multiple sprites. /// </summary> public static GameObject CreateFromTexture <T>(Texture2D texture, tk2dRuntime.SpriteCollectionSize size, Rect region, Vector2 anchor) where T : tk2dBaseSprite { tk2dSpriteCollectionData data = tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture(texture, size, region, anchor); if (data == null) { return(null); } GameObject spriteGo = new GameObject(); tk2dBaseSprite.AddComponent <T>(spriteGo, data, 0); return(spriteGo); }
public static tk2dSpriteCollectionData CreateFromTexture(Texture2D texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent<tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; string shaderName = "tk2d/BlendVertexColor"; #if UNITY_EDITOR { Shader ts = Shader.Find(shaderName); string assetPath = UnityEditor.AssetDatabase.GetAssetPath(ts); if (assetPath.ToLower().IndexOf("/resources/") == -1) { Debug.LogError("tk2dRuntimeSpriteCollection.CreateFromTexture - the tk2d/BlendVertexColor shader needs to be in a resources folder for this to work.\n" + "Please create a subdirectory named 'resources' where the shaders are, and move the BlendVertexColor shader into this directory.\n\n"+ "eg. TK2DROOT/tk2d/Shaders/Resources/BlendVertexColor"+ "\n\n\n\n\n"); return null; } } #endif sc.material = new Material(Shader.Find(shaderName)); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; float scale = 2.0f * size.orthoSize / size.targetHeight; // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(texture, scale, regions[i], anchors[i]); sc.spriteDefinitions[i].name = names[i]; } foreach (var def in sc.spriteDefinitions) def.material = sc.material; return sc; }
public static tk2dSpriteCollectionData CreateFromTexture(Texture2D texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent <tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; sc.material = new Material(Shader.Find("tk2d/BlendVertexColor")); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; float scale = 2.0f * size.orthoSize / size.targetHeight; // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(texture, scale, regions[i], anchors[i]); sc.spriteDefinitions[i].name = names[i]; } foreach (var def in sc.spriteDefinitions) { def.material = sc.material; } return(sc); }
public static tk2dSpriteCollectionData CreateFromTexture(Texture texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { Vector2 textureDimensions = new Vector2( texture.width, texture.height ); return CreateFromTexture( texture, size, textureDimensions, names, regions, null, anchors, null ); }
public static tk2dSpriteCollectionData CreateFromTexture(Texture texture, SpriteCollectionSize size, Rect region, Vector2 anchor) { return CreateFromTexture(texture, size, new string[] { "Unnamed" }, new Rect[] { region }, new Vector2[] { anchor } ); }
public static tk2dSpriteCollectionData CreateFromTexture( Texture texture, SpriteCollectionSize size, Vector2 textureDimensions, string[] names, Rect[] regions, Rect[] trimRects, Vector2[] anchors, bool[] rotated) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent<tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; string shaderName = "tk2d/BlendVertexColor"; #if UNITY_EDITOR { Shader ts = Shader.Find(shaderName); string assetPath = UnityEditor.AssetDatabase.GetAssetPath(ts); if (assetPath.ToLower().IndexOf("/resources/") == -1) { UnityEditor.EditorUtility.DisplayDialog("tk2dRuntimeSpriteCollection Error", "The tk2d/BlendVertexColor shader needs to be in a resources folder for this to work.\n\n" + "Create a subdirectory named 'resources' where the shaders are, and move the BlendVertexColor shader into this directory.\n\n"+ "eg. TK2DROOT/tk2d/Shaders/Resources/BlendVertexColor\n\n" + "Be sure to do this from within Unity and not from Explorer/Finder.", "Ok"); return null; } } #endif sc.material = new Material(Shader.Find(shaderName)); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; sc.buildKey = UnityEngine.Random.Range(0, Int32.MaxValue); float scale = 2.0f * size.orthoSize / size.targetHeight; Rect trimRect = new Rect(0, 0, 0, 0); // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { bool defRotated = (rotated != null) ? rotated[i] : false; if (trimRects != null) { trimRect = trimRects[i]; } else { if (defRotated) trimRect.Set( 0, 0, regions[i].height, regions[i].width ); else trimRect.Set( 0, 0, regions[i].width, regions[i].height ); } sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(names[i], textureDimensions, scale, regions[i], trimRect, anchors[i], defRotated); } foreach (var def in sc.spriteDefinitions) { def.material = sc.material; } return sc; }
/// <summary> /// Create a sprite collection at runtime from a texture and user specified regions. /// Please ensure that names, regions & anchor arrays have same dimension. /// Use <see cref="tk2dBaseSprite.CreateFromTexture"/> if you need to create only one sprite from a texture. /// </summary> public static tk2dSpriteCollectionData CreateFromTexture(Texture2D texture, tk2dRuntime.SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { return(tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture(texture, size, names, regions, anchors)); }
public static tk2dSpriteCollectionData CreateFromTexture(Texture2D texture, SpriteCollectionSize size, Rect region, Vector2 anchor) { return(CreateFromTexture(texture, size, new string[] { "Unnamed" }, new Rect[] { region }, new Vector2[] { anchor })); }
/// <summary> /// Create a sprite (and gameObject) displaying the region of the texture specified. /// Use <see cref="tk2dSpriteCollectionData.CreateFromTexture"/> if you need to create a sprite collection /// with multiple sprites. /// Convenience alias of tk2dBaseSprite.CreateFromTexture<tk2dSprite>(...) /// </summary> public static GameObject CreateFromTexture(Texture2D texture, tk2dRuntime.SpriteCollectionSize size, Rect region, Vector2 anchor) { return(tk2dBaseSprite.CreateFromTexture <tk2dSprite>(texture, size, region, anchor)); }
/// <summary> /// Create a sprite collection at runtime from a texturepacker exported file. /// Ensure this is exported using the "2D Toolkit" export mode in TexturePacker. /// You can find this exporter in Assets/TK2DROOT/tk2d/Goodies/TexturePacker/Exporter /// You can use also use this to load sprite collections at runtime. /// </summary> public static tk2dSpriteCollectionData CreateFromTexturePacker(tk2dRuntime.SpriteCollectionSize size, string texturePackerData, Texture texture) { return(tk2dRuntime.SpriteCollectionGenerator.CreateFromTexturePacker(size, texturePackerData, texture)); }
public static tk2dSpriteCollectionData CreateFromTexture( Texture texture, SpriteCollectionSize size, Vector2 textureDimensions, string[] names, Rect[] regions, Rect[] trimRects, Vector2[] anchors, bool[] rotated) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent <tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; string shaderName = "tk2d/BlendVertexColor"; #if UNITY_EDITOR { Shader ts = Shader.Find(shaderName); string assetPath = UnityEditor.AssetDatabase.GetAssetPath(ts); if (assetPath.ToLower().IndexOf("/resources/") == -1) { UnityEditor.EditorUtility.DisplayDialog("tk2dRuntimeSpriteCollection Error", "The tk2d/BlendVertexColor shader needs to be in a resources folder for this to work.\n\n" + "Create a subdirectory named 'resources' where the shaders are, and move the BlendVertexColor shader into this directory.\n\n" + "eg. TK2DROOT/tk2d/Shaders/Resources/BlendVertexColor\n\n" + "Be sure to do this from within Unity and not from Explorer/Finder.", "Ok"); return(null); } } #endif sc.material = new Material(Shader.Find(shaderName)); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; sc.buildKey = UnityEngine.Random.Range(0, Int32.MaxValue); float scale = 2.0f * size.orthoSize / size.targetHeight; Rect trimRect = new Rect(0, 0, 0, 0); // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { bool defRotated = (rotated != null) ? rotated[i] : false; if (trimRects != null) { trimRect = trimRects[i]; } else { if (defRotated) { trimRect.Set(0, 0, regions[i].height, regions[i].width); } else { trimRect.Set(0, 0, regions[i].width, regions[i].height); } } sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(names[i], textureDimensions, scale, regions[i], trimRect, anchors[i], defRotated); } foreach (var def in sc.spriteDefinitions) { def.material = sc.material; } return(sc); }
public static tk2dSpriteCollectionData CreateFromTexture(Texture texture, SpriteCollectionSize size, string[] names, Rect[] regions, Vector2[] anchors) { Vector2 textureDimensions = new Vector2(texture.width, texture.height); return(CreateFromTexture(texture, size, textureDimensions, names, regions, null, anchors, null)); }