コード例 #1
0
    private bool FindStar(int starIndex, out SGT_MeshData meshData, out int vertexIndex)
    {
        if (starIndex >= 0 && starIndex < starfieldStarCount && meshes != null && meshes.Length > 0)
        {
            var starsPerMesh = SGT_Helper.MeshVertexLimit / 4;
            var meshIndex    = System.Math.DivRem(starIndex, starsPerMesh, out vertexIndex);
            var mesh         = meshes[meshIndex];

            if (mesh != null)
            {
                meshData    = GetMeshData(mesh, meshIndex);
                vertexIndex = vertexIndex * 4;                 // 4 verts per star

                return(true);
            }
        }

        meshData    = null;
        vertexIndex = -1;

        return(false);
    }
コード例 #2
0
    private SGT_MeshData GetMeshData(Mesh mesh, int index)
    {
        if (index >= 0 && mesh != null && meshes != null && index < meshes.Length)
        {
            if (meshDatas == null || meshDatas.Length != meshes.Length)
            {
                meshDatas = new SGT_MeshData[meshes.Length];
            }

            var meshData = meshDatas[index];

            if (meshData == null || meshData.SharedMesh != mesh)
            {
                meshData = new SGT_MeshData(mesh);

                meshDatas[index] = meshData;
            }

            return(meshData);
        }

        return(null);
    }
コード例 #3
0
    private SGT_MeshData GetMeshData(Mesh mesh, int index)
    {
        if (index >= 0 && mesh != null && meshes != null && index < meshes.Length)
        {
            if (meshDatas == null || meshDatas.Length != meshes.Length)
            {
                meshDatas = new SGT_MeshData[meshes.Length];
            }

            var meshData = meshDatas[index];

            if (meshData == null || meshData.SharedMesh != mesh)
            {
                meshData = new SGT_MeshData(mesh);

                meshDatas[index] = meshData;
            }

            return meshData;
        }

        return null;
    }
コード例 #4
0
    private bool FindStar(int starIndex, out SGT_MeshData meshData, out int vertexIndex)
    {
        if (starIndex >= 0 && starIndex < starfieldStarCount && meshes != null && meshes.Length > 0)
        {
            var starsPerMesh = SGT_Helper.MeshVertexLimit / 4;
            var meshIndex    = System.Math.DivRem(starIndex, starsPerMesh, out vertexIndex);
            var mesh         = meshes[meshIndex];

            if (mesh != null)
            {
                meshData    = GetMeshData(mesh, meshIndex);
                vertexIndex = vertexIndex * 4; // 4 verts per star

                return true;
            }
        }

        meshData    = null;
        vertexIndex = -1;

        return false;
    }