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();
        }
    }
示例#3
0
    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();
            }
        }
    }
示例#4
0
    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);
    }
示例#5
0
    // 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]);
	}
示例#9
0
 public CSpriteFrame(CSpriteFrame f)
 {
     this.Copy(f);
 }