示例#1
0
    protected virtual void initMesh()
    {
        GAFAtlasElementData element = atlasElement;
        GAFTexturesData     info    = textureInfo;

        if (filter == null)
        {
            filter = gameObject.AddComponent <MeshFilter> ();
        }

        float scale        = element.scale * movieClip.settings.pixelsPerUnit;
        float scaledPivotX = element.pivotX / scale;
        float scaledPivotY = element.pivotY / scale;
        float scaledWidth  = element.width / scale;
        float scaledHeight = element.height / scale;

        Vector3 [] vertices = new Vector3[4];
        vertices[0] = new Vector3(-scaledPivotX, scaledPivotY - scaledHeight, 0f);
        vertices[1] = new Vector3(-scaledPivotX, scaledPivotY, 0f);
        vertices[2] = new Vector3(-scaledPivotX + scaledWidth, scaledPivotY, 0f);
        vertices[3] = new Vector3(-scaledPivotX + scaledWidth, scaledPivotY - scaledHeight, 0f);

        Texture2D atlasTexture         = movieClip.resource.getTexture(System.IO.Path.GetFileNameWithoutExtension(info.getFileName(movieClip.settings.csf)));
        float     scaledElementLeftX   = element.x * movieClip.settings.csf / atlasTexture.width;
        float     scaledElementRightX  = (element.x + element.width) * movieClip.settings.csf / atlasTexture.width;
        float     scaledElementTopY    = (atlasTexture.height - element.y * movieClip.settings.csf - element.height * movieClip.settings.csf) / atlasTexture.height;
        float     scaledElementBottomY = (atlasTexture.height - element.y * movieClip.settings.csf) / atlasTexture.height;

        Vector2 [] uv = new Vector2[vertices.Length];
        uv [0] = new Vector2(scaledElementLeftX, scaledElementTopY);
        uv [1] = new Vector2(scaledElementLeftX, scaledElementBottomY);
        uv [2] = new Vector2(scaledElementRightX, scaledElementBottomY);
        uv [3] = new Vector2(scaledElementRightX, scaledElementTopY);

        Vector3 [] normals = new Vector3[vertices.Length];
        normals[0] = new Vector3(0f, 0f, -1f);
        normals[1] = new Vector3(0f, 0f, -1f);
        normals[2] = new Vector3(0f, 0f, -1f);
        normals[3] = new Vector3(0f, 0f, -1f);

        int [] triangles = new int[6];
        triangles[0] = 2;
        triangles[1] = 0;
        triangles[2] = 1;
        triangles[3] = 3;
        triangles[4] = 0;
        triangles[5] = 2;

        Mesh mesh = new Mesh();

        mesh.name = "Element_" + atlasElementID;

        mesh.vertices  = vertices;
        mesh.uv        = uv;
        mesh.triangles = triangles;
        mesh.normals   = normals;

        filter.mesh = mesh;
        filter.sharedMesh.Optimize();
    }
示例#2
0
    protected virtual void initBaseData(GAFMovieClip _Player)
    {
        m_Player = _Player;

        if (m_ObjectID < 0 ||
            m_AtlasElementID < 0)
        {
            string [] names = gameObject.name.Split('_');
            m_AtlasElementID = int.Parse(names[0]);
            m_ObjectID       = int.Parse(names[1]);
        }

        if (m_CurrentState == null)
        {
            m_CurrentState = new GAFObjectStateData(objectID);
        }

        m_TextureAtlas = movieClip.asset.getAtlases(movieClip.timelineID).Find(atlas => atlas.scale == movieClip.settings.scale);
        m_AtlasElement = textureAtlas.getElement(atlasElementID);
        m_TextureInfo  = textureAtlas.getAtlas(atlasElement.atlasID);
    }
示例#3
0
        protected virtual void initializeBaseData()
        {
            var clip = serializedProperties.clip;

            m_AtlasData        = clip.asset.getAtlases(clip.timelineID).Find(atlas => atlas.scale == clip.settings.scale);
            m_AtlasElementData = m_AtlasData.getElement(serializedProperties.atlasElementID);
            m_TexturesData     = m_AtlasData.getAtlas(m_AtlasElementData.atlasID);

            m_Texture = hasCustomTexture ? serializedProperties.material.mainTexture as Texture2D :
                        clip.resource.getTexture(System.IO.Path.GetFileNameWithoutExtension(texturesData.getFileName(clip.settings.csf)));
            m_Material = hasCustomTexture ? serializedProperties.material :
                         clip.getSharedMaterial(System.IO.Path.GetFileNameWithoutExtension(texturesData.getFileName(clip.settings.csf)));
            m_Material.renderQueue = 3000;

            m_CurrentState = new GAFObjectStateData(serializedProperties.objectID);
            m_Colors       = new Color32[4] {
                initialColor, initialColor, initialColor, initialColor
            };
            m_ColorShift = new Vector4[4];

            calcInitialVertices();
            calcUV();
        }
示例#4
0
        protected virtual void initializeBaseData()
        {
            var clip = serializedProperties.clip;

            m_AtlasData			= clip.asset.getAtlases(clip.timelineID).Find(atlas => atlas.scale == clip.settings.scale);
            m_AtlasElementData	= m_AtlasData.getElement(serializedProperties.atlasElementID);
            m_TexturesData		= m_AtlasData.getAtlas(m_AtlasElementData.atlasID);

            m_Texture	= hasCustomTexture ? serializedProperties.material.mainTexture as Texture2D :
                            clip.resource.getTexture(System.IO.Path.GetFileNameWithoutExtension(texturesData.getFileName(clip.settings.csf)));
            m_Material	= hasCustomTexture ? serializedProperties.material :
                            clip.getSharedMaterial(System.IO.Path.GetFileNameWithoutExtension(texturesData.getFileName(clip.settings.csf)));
            m_Material.renderQueue = 3000;

            m_CurrentState		= new GAFObjectStateData(serializedProperties.objectID);
            m_Colors			= new Color32[4] { initialColor, initialColor, initialColor, initialColor };
            m_ColorShift		= new Vector4[4];

            calcInitialVertices();
            calcUV();
        }