コード例 #1
0
    public void CreateCubeLayers(Vector3 targetPosition)
    {
        GridUtils.BaseMaterial = BaseMaterial;

        int colorCounter = 0;
        GridPos pos = GridUtils.WorldToGrid(targetPosition, GridMinSize);
        GridPos vpos;
        GridPos gpos;
        float cubesize;

        worldObject = new GameObject("WorldRenderObject");
        worldObject.transform.position = targetPosition;
        GameObject locObj;

        for (int z = -1; z <= 1; z++)
        {
            for (int x = -1; x <= 1; x++)
            {
                for (int y = -1; y <= 1; y++)
                {
                    //Debug.Log(String.Format("{0} {1} {2}", gpos.x, gpos.y, gpos.z));

                    pos = GridUtils.WorldToGrid(targetPosition, GridMinSize * 9);
                    gpos = new GridPos(pos.x + x, pos.y + y, pos.z + z);
                    vpos = new GridPos(gpos.x * GridMinSize * 9, gpos.y * GridMinSize * 9, gpos.z * GridMinSize * 9);
                    cubesize = GridMinSize * 9 / 2f ;

                    //L3Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(45f, 0.1f, 45f), GridUtils.BaseColors[colorCounter % 2 + 4], worldObject));
                    L3Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(cubesize, cubesize, cubesize), GridUtils.BaseColors[colorCounter % 2 + 4], worldObject));
                    locObj = Instantiate(LocatorCube, vpos.ToVector3(), Quaternion.identity) as GameObject;
                    locObj.transform.parent = worldObject.transform;

                    pos = GridUtils.WorldToGrid(targetPosition, GridMinSize * 3);
                    gpos = new GridPos(pos.x + x, pos.y + y, pos.z + z);
                    vpos = new GridPos(gpos.x * GridMinSize * 3, gpos.y * GridMinSize * 3, gpos.z * GridMinSize * 3);
                    cubesize = GridMinSize * 3 / 2f;

                    //L2Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(15f, 1f, 15f), GridUtils.BaseColors[colorCounter % 2 + 2], worldObject));
                    L2Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(cubesize, cubesize, cubesize), GridUtils.BaseColors[colorCounter % 2 + 2], worldObject));
                    locObj = Instantiate(LocatorCube, vpos.ToVector3(), Quaternion.identity) as GameObject;
                    locObj.transform.parent = worldObject.transform;

                    pos = GridUtils.WorldToGrid(targetPosition, GridMinSize);
                    gpos = new GridPos(pos.x + x, pos.y + y, pos.z + z);
                    vpos = new GridPos(gpos.x * GridMinSize, gpos.y * GridMinSize, gpos.z * GridMinSize);
                    cubesize = GridMinSize / 2f;

                    //L1Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(5f, 2f, 5f), GridUtils.BaseColors[colorCounter++ % 2], worldObject));
                    L1Dict.Add(gpos.ToKeyString(), GridUtils.CreateRenderCube(vpos, new Vector3(cubesize, cubesize, cubesize), GridUtils.BaseColors[colorCounter++ % 2], worldObject));
                    locObj = Instantiate(LocatorCube, vpos.ToVector3(), Quaternion.identity) as GameObject;
                    locObj.transform.parent = worldObject.transform;
                }
            }
        }
        EnabledTracking = true;
    }