public void Copy(CSpriteFrame f) { this.uvs = f.uvs; this.scaleFactor = f.scaleFactor; this.topLeftOffset = f.topLeftOffset; this.bottomRightOffset = f.bottomRightOffset; }
public static void SetImageRaster(byte[] _byteFriendImage, GameObject _objImage) { Texture2D wwwFriendImage = new Texture2D((int)ScrollData.sizeMessageImage.x, (int)ScrollData.sizeMessageImage.y); MeshRenderer meshRenderer = (MeshRenderer)_objImage.GetComponent(typeof(MeshRenderer)); if (_byteFriendImage != null) { wwwFriendImage.LoadImage(_byteFriendImage); meshRenderer.material.mainTexture = wwwFriendImage; CSpriteFrame[] frames = new CSpriteFrame[4]; // 4 arrays of frames, with 1 frame each _objImage.GetComponent <UIButton>().SetUVs(new Rect(0, 0, 1, 1)); for (int i = 0; i < frames.Length; ++i) { frames[i] = new CSpriteFrame(); frames[i].uvs = new Rect(0, 0, 1, 1); SPRITE_FRAME [] anim = new SPRITE_FRAME[1]; anim[0] = frames[i].ToStruct(); _objImage.GetComponent <UIButton>().animations[i].SetAnim(anim); } _objImage.GetComponent <UIButton>().UpdateUVs(); } }
public CSpriteFrame[] spriteFrames; // Array that parallels the Texture2D frameGUIDs array and holds the post-packing atlas UV coords for the given frame // Allocates enough elements in each of the "frame info" fields // to hold info for each animation frame specified in "frames": public void Allocate() { bool allocate = false; if (framePaths == null) { framePaths = new string[0]; } if (frameGUIDs == null) { frameGUIDs = new string[0]; } if (spriteFrames == null) { allocate = true; } else if (spriteFrames.Length != frameGUIDs.Length) { allocate = true; } if (allocate) { spriteFrames = new CSpriteFrame[Mathf.Max(frameGUIDs.Length, framePaths.Length)]; for (int i = 0; i < spriteFrames.Length; ++i) { spriteFrames[i] = new CSpriteFrame(); } } }
public override Vector2 GetDefaultPixelSize(PathFromGUIDDelegate guid2Path, AssetLoaderDelegate loader) { TextureAnim a = DefaultState; CSpriteFrame f = DefaultFrame; if (a == null) { return(Vector2.zero); } if (a.frameGUIDs == null) { return(Vector2.zero); } if (a.frameGUIDs.Length == 0) { return(Vector2.zero); } if (f == null) { Debug.LogWarning("Sprite \"" + name + "\" does not seem to have been built to an atlas yet."); return(Vector2.zero); } Vector2 size = Vector2.zero; Texture2D tex = (Texture2D)loader(guid2Path(a.frameGUIDs[0]), typeof(Texture2D)); if (tex == null) { if (spriteMesh != null) { tex = (Texture2D)spriteMesh.material.GetTexture("_MainTex"); size = new Vector2(f.uvs.width * tex.width, f.uvs.height * tex.height); } } else { size = new Vector2(tex.width * (1f / (f.scaleFactor.x * 2f)), tex.height * (1f / (f.scaleFactor.y * 2f))); } return(size); }
// Member-wise copy: public void Copy(TextureAnim a) { name = a.name; loopCycles = a.loopCycles; loopReverse = a.loopReverse; framerate = a.framerate; onAnimEnd = a.onAnimEnd; framePaths = new string[a.framePaths.Length]; a.framePaths.CopyTo(framePaths, 0); frameGUIDs = new string[a.frameGUIDs.Length]; a.frameGUIDs.CopyTo(frameGUIDs, 0); spriteFrames = new CSpriteFrame[a.spriteFrames.Length]; for (int i = 0; i < spriteFrames.Length; ++i) { spriteFrames[i] = new CSpriteFrame(a.spriteFrames[i]); } }
public override Vector2 GetDefaultPixelSize(PathFromGUIDDelegate guid2Path, AssetLoaderDelegate loader) { TextureAnim defaultState = this.DefaultState; CSpriteFrame defaultFrame = this.DefaultFrame; if (defaultState == null) { return(Vector2.zero); } if (defaultState.frameGUIDs == null) { return(Vector2.zero); } if (defaultState.frameGUIDs.Length == 0) { return(Vector2.zero); } if (defaultFrame == null) { TsLog.LogWarning("Sprite \"" + base.name + "\" does not seem to have been built to an atlas yet.", new object[0]); return(Vector2.zero); } Vector2 zero = Vector2.zero; Texture2D texture2D = (Texture2D)loader(guid2Path(defaultState.frameGUIDs[0]), typeof(Texture2D)); if (texture2D == null) { if (base.spriteMesh != null) { texture2D = (Texture2D)base.spriteMesh.material.GetTexture("_MainTex"); zero = new Vector2(defaultFrame.uvs.width * (float)texture2D.width, defaultFrame.uvs.height * (float)texture2D.height); } } else { zero = new Vector2((float)texture2D.width * (1f / (defaultFrame.scaleFactor.x * 2f)), (float)texture2D.height * (1f / (defaultFrame.scaleFactor.y * 2f))); } return(zero); }
public CSpriteFrame[] spriteFrames; // Array that parallels the Texture2D frameGUIDs array and holds the post-packing atlas UV coords for the given frame // Allocates enough elements in each of the "frame info" fields // to hold info for each animation frame specified in "frames": public void Allocate() { bool allocate = false; if (framePaths == null) framePaths = new string[0]; if (frameGUIDs == null) frameGUIDs = new string[0]; if (spriteFrames == null) allocate = true; else if (spriteFrames.Length != frameGUIDs.Length) allocate = true; if (allocate) { spriteFrames = new CSpriteFrame[Mathf.Max(frameGUIDs.Length, framePaths.Length)]; for (int i = 0; i < spriteFrames.Length; ++i) spriteFrames[i] = new CSpriteFrame(); } }
// Member-wise copy: public void Copy(TextureAnim a) { name = a.name; loopCycles = a.loopCycles; loopReverse = a.loopReverse; framerate = a.framerate; onAnimEnd = a.onAnimEnd; framePaths = new string[a.framePaths.Length]; a.framePaths.CopyTo(framePaths, 0); frameGUIDs = new string[a.frameGUIDs.Length]; a.frameGUIDs.CopyTo(frameGUIDs, 0); spriteFrames = new CSpriteFrame[a.spriteFrames.Length]; for (int i = 0; i < spriteFrames.Length; ++i) spriteFrames[i] = new CSpriteFrame(a.spriteFrames[i]); }
public CSpriteFrame(CSpriteFrame f) { this.Copy(f); }