Beispiel #1
0
    // This is used by other parts of code
    public static void RestoreBatchedSprite(GameObject go, tk2dBatchedSprite bs)
    {
        tk2dBaseSprite baseSprite = null;

        switch (bs.type)
        {
        case tk2dBatchedSprite.Type.EmptyGameObject:
        {
            break;
        }

        case tk2dBatchedSprite.Type.Sprite:
        {
            tk2dSprite s = tk2dBaseSprite.AddComponent <tk2dSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite = s;
            break;
        }

        case tk2dBatchedSprite.Type.TiledSprite:
        {
            tk2dTiledSprite s = tk2dBaseSprite.AddComponent <tk2dTiledSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite          = s;
            s.dimensions        = bs.Dimensions;
            s.anchor            = bs.anchor;
            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }

        case tk2dBatchedSprite.Type.SlicedSprite:
        {
            tk2dSlicedSprite s = tk2dBaseSprite.AddComponent <tk2dSlicedSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite   = s;
            s.dimensions = bs.Dimensions;
            s.anchor     = bs.anchor;

            s.BorderOnly = bs.CheckFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly);
            s.SetBorder(bs.SlicedSpriteBorderBottomLeft.x, bs.SlicedSpriteBorderBottomLeft.y, bs.SlicedSpriteBorderTopRight.x, bs.SlicedSpriteBorderTopRight.y);

            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }

        case tk2dBatchedSprite.Type.ClippedSprite:
        {
            tk2dClippedSprite s = tk2dBaseSprite.AddComponent <tk2dClippedSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite       = s;
            s.clipBottomLeft = bs.ClippedSpriteRegionBottomLeft;
            s.clipTopRight   = bs.ClippedSpriteRegionTopRight;

            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }
        }
        baseSprite.scale = bs.baseScale;
        baseSprite.color = bs.color;
    }
Beispiel #2
0
    /// <summary>
    /// Data로 최초 초기화 (CustomTextMesh에서 [n] [/n] 태그로 버튼을 만들어 커스텀 텍스트 메쉬 하위에 붙일경우에 사용합니다.)
    /// </summary>
    /// <param name="Data"></param>
    public void InitByData(CommonButtonCreateData Data)
    {
        m_eInitType  = Data.m_eType;
        m_CreateData = Data;

        switch (Data.m_eType)
        {
        case E_COMMON_BUTTON_DATA_TYPE.COLLIDER:
        {
            this.transform.SetLocalPosition(0, 0, 0);
            BoxCollider BoxCollider = m_collBox;
            BoxCollider.size   = new Vector3(Data.m_fWidth, Data.m_fHeight, 0);
            BoxCollider.center = new Vector3(Data.m_fOffsetX, Data.m_fOffsetY, 0);
        }
        break;

        case E_COMMON_BUTTON_DATA_TYPE.SPRITE:
        {
            this.transform.SetLocalPosition(0, 0, 0.1f);
            BoxCollider BoxCollider = m_collBox;
            BoxCollider.size = new Vector3(Data.m_fWidth * 0.95f, Data.m_fHeight * 1.5f, 0);
            this.transform.SetLocalPositionXY(Data.m_fOffsetX, Data.m_fOffsetY);

            tk2dSlicedSprite spriteBackGround = (tk2dSlicedSprite)m_spriteButtonUp;
            float            fWidth           = Data.m_fWidth * Constants.UnityMeterInPixels_UI * 0.95f;

            spriteBackGround.dimensions = new Vector2(fWidth, Data.m_fHeight * Constants.UnityMeterInPixels_UI * 1.5f);
            if (fWidth < 20.0f)
            {
                spriteBackGround.SetBorder(0, 0, 0, 0);
            }
            else
            {
                float fBorder = 0.4f;
                spriteBackGround.SetBorder(fBorder, fBorder, fBorder, fBorder);
            }
        }
        break;

        case E_COMMON_BUTTON_DATA_TYPE.HITBOX:
        {
            this.transform.SetLocalPosition(0, 0, 0.1f);
            BoxCollider BoxCollider = m_collBox;
            BoxCollider.size = new Vector3(Data.m_fWidth * 0.95f, Data.m_fHeight * 1.5f, 0);
            this.transform.SetLocalPositionXY(Data.m_fOffsetX, Data.m_fOffsetY);

            tk2dSlicedSprite spriteBackGround = (tk2dSlicedSprite)m_spriteButtonUp;
            float            fWidth           = Data.m_fWidth * Constants.UnityMeterInPixels_UI * 0.95f;

            spriteBackGround.dimensions = new Vector2(fWidth, Data.m_fHeight * Constants.UnityMeterInPixels_UI * 1.5f);
            if (fWidth < 20.0f)
            {
                spriteBackGround.SetBorder(0, 0, 0, 0);
            }
            else
            {
                float fBorder = 0.4f;
                spriteBackGround.SetBorder(fBorder, fBorder, fBorder, fBorder);
            }
            spriteBackGround.color    = new Color(1, 1, 1, 0.5f);
            spriteBackGround.anchor   = tk2dBaseSprite.Anchor.LowerCenter;
            this.transform.localScale = new Vector3(0.01f, 0.01f, 1);
        }
        break;
        }

        /*
         * tk2dUITweenItem tween = GetComponent<tk2dUITweenItem>();
         * if (tween != null)
         * {
         *  tween.SetupStartingSize();
         * }
         */
    }