コード例 #1
0
 private GLexMeshRenderer(GLexMeshRenderer parentRenderer, int subMesh)
 {
     mComponent    = parentRenderer.mComponent;
     _mesh         = parentRenderer._mesh;
     _submeshIndex = subMesh;
     _material     = GLexMaterial.Get(parentRenderer.mComponent.sharedMaterials[subMesh], mComponent);
 }
コード例 #2
0
 private void SetupSubmeshRenderer(GLexSkinnedMeshRenderer parent, int submeshIndex)
 {
     mComponent    = parent.mComponent;
     mMesh         = parent.mMesh;
     _submeshIndex = submeshIndex;
     _material     = GLexMaterial.Get(parent.mComponent.sharedMaterials[submeshIndex], mComponent);
 }
コード例 #3
0
 private GLexMeshRenderer(GLexMeshRenderer parentRenderer, int subMesh)
 {
     mComponent = parentRenderer.mComponent;
     _mesh = parentRenderer._mesh;
     _submeshIndex = subMesh;
     _material = GLexMaterial.Get(parentRenderer.mComponent.sharedMaterials[subMesh], mComponent);
 }
コード例 #4
0
    public GooBinaryMesh(GLexMesh glexMesh)
    {
        mGlexMesh = glexMesh;
        mMesh = mGlexMesh.Mesh;

        _submeshProxies = new GooBinarySubMeshProxy[mMesh.subMeshCount];
        for (int i = 0; i < _submeshProxies.Length; ++i) {
            _submeshProxies[i] = new GooBinarySubMeshProxy(this, i);
        }
    }
コード例 #5
0
    // overrides
    public override void AssociateWithComponent(object obj)
    {
        base.AssociateWithComponent(obj);
        mComponent = (SkinnedMeshRenderer)obj;

        _material     = GLexMaterial.Get(mComponent.sharedMaterials[0], mComponent);
        _submeshIndex = 0;

        mMesh = GLexMesh.Get(mComponent.sharedMesh);
    }
コード例 #6
0
    public GooBinaryMesh(GLexMesh glexMesh)
    {
        mGlexMesh = glexMesh;
        mMesh     = mGlexMesh.Mesh;

        _submeshProxies = new GooBinarySubMeshProxy[mMesh.subMeshCount];
        for (int i = 0; i < _submeshProxies.Length; ++i)
        {
            _submeshProxies[i] = new GooBinarySubMeshProxy(this, i);
        }
    }
コード例 #7
0
    // overrides

    public override void AssociateWithComponent(object obj)
    {
        base.AssociateWithComponent(obj);
        mComponent = (MeshRenderer)obj;

        var meshFilter = mComponent.gameObject.GetComponent <MeshFilter>();

        if (meshFilter != null)
        {
            Vector3 scale = meshFilter.transform.lossyScale;
            _mesh       = GLexMesh.Get(meshFilter.sharedMesh);
            _mesh.Scale = scale;
        }

        _material     = GLexMaterial.Get(mComponent.sharedMaterials[0], mComponent);
        _submeshIndex = 0;
    }
コード例 #8
0
    public GLexData()
    {
        Instance = this;

        GLexMaterial.Reset();
        GLexMesh.Reset();
        GLexTexture.Reset();
        GLexShader.Reset();
        GLexSkinnedMeshRenderer.Reset();
        GLexBone.Reset();
        GLexAnimation.Reset();
        GLexAnimationClip.Reset();
        GLexAnimationState.Reset();
        GooSkybox.Reset();
        GLexAudioSource.Reset();
        GooSkeleton.Reset();


        mGLexGameObjects    = new List <GLexGameObject>();
        mGLexTopGameObjects = new List <GLexGameObject>();
        mGLexComponents     = new List <GLexComponent>();
    }
コード例 #9
0
    public void PrepareForExport()
    {
        if (GLexConfig.GetOption(GLexConfig.SETUNIQUENAMES))
        {
            Dictionary <string, int> uniqueNames = new Dictionary <string, int>();

            foreach (GLexGameObject gameObject in mGLexGameObjects)
            {
                if (gameObject.Settings == null)
                {
                    _addedSettingsTo.Add(gameObject);
                    gameObject.AddSettings();
                }
                else
                {
                    gameObject.ResetSettingsExportName();
                }
            }

            foreach (GLexGameObject gameObject in mGLexGameObjects)
            {
                if (uniqueNames.ContainsKey(gameObject.Settings.UniqueName))
                {
                    gameObject.Settings.UniqueName = gameObject.Settings.UniqueName + (++uniqueNames[gameObject.Settings.UniqueName]).ToString();
                }
                else
                {
                    uniqueNames.Add(gameObject.Settings.UniqueName, 0);
                }
            }
        }

        // Keep preparing objects while new ones are being added
        int prevGameObjectCount = 0, prevComponentCount = 0;

        while (prevGameObjectCount < mGLexGameObjects.Count || prevComponentCount < mGLexComponents.Count)
        {
            int goStart = prevGameObjectCount;
            int gcStart = prevComponentCount;
            prevGameObjectCount = mGLexGameObjects.Count;
            prevComponentCount  = mGLexComponents.Count;

            for (int i = goStart; i < prevGameObjectCount; ++i)
            {
                mGLexGameObjects[i].PrepareForExport();
            }
            for (int i = gcStart; i < prevComponentCount; ++i)
            {
                mGLexComponents[i].PrepareForExport();
            }
        }

        // find top objects
        foreach (GLexGameObject gameObject in mGLexGameObjects)
        {
            if (!gameObject.HasParent)
            {
                mGLexTopGameObjects.Add(gameObject);
            }
        }

        GLexMaterial.PrepareForExport();
        GLexMesh.PrepareForExport();
        GLexTexture.PrepareForExport();
        GLexShader.PrepareForExport();
        GLexSkinnedMeshRenderer.StaticPrepareForExport();
        GLexBone.PrepareForExport();
        // GLexAnimation		   .PrepareForExport();
        // GLexAnimationClip      .PrepareForExport();

        mGLexGameObjectsAsArray    = mGLexGameObjects.ToArray();
        mGLexTopGameObjectsAsArray = mGLexTopGameObjects.ToArray();
        mGLexComponentsAsArray     = mGLexComponents.ToArray();

        mScene.PrepareForExport();
    }
コード例 #10
0
 private void SetupSubmeshRenderer(GLexSkinnedMeshRenderer parent, int submeshIndex)
 {
     mComponent = parent.mComponent;
     mMesh = parent.mMesh;
     _submeshIndex = submeshIndex;
     _material = GLexMaterial.Get(parent.mComponent.sharedMaterials[submeshIndex], mComponent);
 }
コード例 #11
0
    // overrides
    public override void AssociateWithComponent(object obj)
    {
        base.AssociateWithComponent(obj);
        mComponent = (SkinnedMeshRenderer)obj;

        _material = GLexMaterial.Get(mComponent.sharedMaterials[0], mComponent);
        _submeshIndex = 0;

        mMesh = GLexMesh.Get(mComponent.sharedMesh);
    }
コード例 #12
0
    // overrides
    public override void AssociateWithComponent(object obj)
    {
        base.AssociateWithComponent(obj);
        mComponent = (MeshRenderer)obj;

        var meshFilter = mComponent.gameObject.GetComponent<MeshFilter>();
        if (meshFilter != null) {
            Vector3 scale = meshFilter.transform.lossyScale;
            _mesh = GLexMesh.Get(meshFilter.sharedMesh);
            _mesh.Scale = scale;
        }

        _material = GLexMaterial.Get(mComponent.sharedMaterials[0], mComponent);
        _submeshIndex = 0;
    }