Пример #1
0
    public Bounds GetCubeAreaBound(ECubeArea area)
    {
        int x = this.m_areaEnumToCoordinate[(uint)area, 0];
        int y = this.m_areaEnumToCoordinate[(uint)area, 1];
        int z = this.m_areaEnumToCoordinate[(uint)area, 2];

        return(this.m_areaBound[x + 1, y + 1, z + 1]);
    }
Пример #2
0
    private void InitCubeAreaSetting()
    {
        this.m_cubeAreaObject = new GameObject[26];

        this.m_eAreaEnumLUT[0, 0, 0] = ECubeArea.XM_YM_ZM;
        this.m_eAreaEnumLUT[0, 0, 1] = ECubeArea.XM_YM;
        this.m_eAreaEnumLUT[0, 0, 2] = ECubeArea.XM_YM_ZP;

        this.m_eAreaEnumLUT[0, 1, 0] = ECubeArea.XM_ZM;
        this.m_eAreaEnumLUT[0, 1, 1] = ECubeArea.XM;
        this.m_eAreaEnumLUT[0, 1, 2] = ECubeArea.XM_ZP;

        this.m_eAreaEnumLUT[0, 2, 0] = ECubeArea.XM_YP_ZM;
        this.m_eAreaEnumLUT[0, 2, 1] = ECubeArea.XM_YP;
        this.m_eAreaEnumLUT[0, 2, 2] = ECubeArea.XM_YP_ZP;

        this.m_eAreaEnumLUT[1, 0, 0] = ECubeArea.YM_ZM;
        this.m_eAreaEnumLUT[1, 0, 1] = ECubeArea.YM;
        this.m_eAreaEnumLUT[1, 0, 2] = ECubeArea.YM_ZP;

        this.m_eAreaEnumLUT[1, 1, 0] = ECubeArea.ZM;
        this.m_eAreaEnumLUT[1, 1, 1] = ECubeArea.NONE;
        this.m_eAreaEnumLUT[1, 1, 2] = ECubeArea.ZP;

        this.m_eAreaEnumLUT[1, 2, 0] = ECubeArea.YP_ZM;
        this.m_eAreaEnumLUT[1, 2, 1] = ECubeArea.YP;
        this.m_eAreaEnumLUT[1, 2, 2] = ECubeArea.YP_ZP;

        this.m_eAreaEnumLUT[2, 0, 0] = ECubeArea.XP_YM_ZM;
        this.m_eAreaEnumLUT[2, 0, 1] = ECubeArea.XP_YM;
        this.m_eAreaEnumLUT[2, 0, 2] = ECubeArea.XP_YM_ZP;

        this.m_eAreaEnumLUT[2, 1, 0] = ECubeArea.XP_ZM;
        this.m_eAreaEnumLUT[2, 1, 1] = ECubeArea.XP;
        this.m_eAreaEnumLUT[2, 1, 2] = ECubeArea.XP_ZP;

        this.m_eAreaEnumLUT[2, 2, 0] = ECubeArea.XP_YP_ZM;
        this.m_eAreaEnumLUT[2, 2, 1] = ECubeArea.XP_YP;
        this.m_eAreaEnumLUT[2, 2, 2] = ECubeArea.XP_YP_ZP;

        const float cubeAreaAlphaValue = 0.3f;

        Material   cubeAreaMat    = Resources.Load("Prefab/CubeAreaMat") as Material;
        GameObject cubeAreaPrefab = Resources.Load("Prefab/pAreaCube") as GameObject;

        this.m_cubeAreaParent      = GameObject.Instantiate(this.m_emptyGameObjectPrefab, this.m_cubeWorldTransform);
        this.m_cubeAreaParent.name = "CubeParent";
        this.m_cubeAreaParent.SetActive(this.bCubeAreaDebuggingEnable);

        for (int i = 0; i < this.m_cubeAreaObject.Length; ++i)
        {
            this.m_cubeAreaObject[i] = GameObject.Instantiate(cubeAreaPrefab, this.m_cubeAreaParent.transform);
        }

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP],
                              "CubeArea_X+",
                              new Vector3(1f, 0f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 0f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM],
                              "CubeArea_X-",
                              new Vector3(-1f, 0f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 0f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YP],
                              "CubeArea_Y+",
                              new Vector3(0f, 1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 0f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YM],
                              "CubeArea_Y-",
                              new Vector3(0f, -1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 0f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.ZP],
                              "CubeArea_Z+",
                              new Vector3(0f, 0f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 0f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.ZM],
                              "CubeArea_Z-",
                              new Vector3(0f, 0f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 0f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YP],
                              "CubeArea_X+Y+",
                              new Vector3(1f, 1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 0f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YM],
                              "CubeArea_X+Y-",
                              new Vector3(1f, -1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 0f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YP],
                              "CubeArea_X-Y+",
                              new Vector3(-1f, 1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 0f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YM],
                              "CubeArea_X-Y-",
                              new Vector3(-1f, -1f, 0f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 0f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_ZP],
                              "CubeArea_X+Z+",
                              new Vector3(1f, 0f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_ZM],
                              "CubeArea_X-Z+",
                              new Vector3(1f, 0f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_ZP],
                              "CubeArea_X-Z+",
                              new Vector3(-1f, 0f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_ZM],
                              "CubeArea_X-Z-",
                              new Vector3(-1f, 0f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 0f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YP_ZP],
                              "CubeArea_Y+Z+",
                              new Vector3(0f, 1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YP_ZM],
                              "CubeArea_Y-Z+",
                              new Vector3(0f, 1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YM_ZP],
                              "CubeArea_Y-Z+",
                              new Vector3(0f, -1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.YM_ZM],
                              "CubeArea_Y-Z-",
                              new Vector3(0f, -1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(0f, 1f, 1f, cubeAreaAlphaValue));


        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YP_ZP],
                              "CubeArea_X+Y+Z+",
                              new Vector3(1f, 1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YP_ZM],
                              "CubeArea_X+Y+Z-",
                              new Vector3(1f, 1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YM_ZP],
                              "CubeArea_X+Y-Z+",
                              new Vector3(1f, -1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XP_YM_ZM],
                              "CubeArea_X+Y-Z-",
                              new Vector3(1f, -1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YP_ZP],
                              "CubeArea_X-Y+Z+",
                              new Vector3(-1f, 1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YP_ZM],
                              "CubeArea_X-Y+Z-",
                              new Vector3(-1f, 1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));

        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YM_ZP],
                              "CubeArea_X-Y-Z+",
                              new Vector3(-1f, -1f, 1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));
        SetCubeAreaGameObject(ref this.m_cubeAreaObject[(uint)ECubeArea.XM_YM_ZM],
                              "CubeArea_X-Y-Z-",
                              new Vector3(-1f, -1f, -1f),
                              new Vector3(1f, 1f, 1f),
                              ref cubeAreaMat,
                              new Color(1f, 1f, 1f, cubeAreaAlphaValue));

        for (int i = 0; i < this.m_cubeAreaObject.Length; ++i)
        {
            ECubeArea ae = (ECubeArea)i;

            int x = this.m_areaEnumToCoordinate[i, 0] + 1;
            int y = this.m_areaEnumToCoordinate[i, 1] + 1;
            int z = this.m_areaEnumToCoordinate[i, 2] + 1;

            // Get World Bound from Renderer
            this.m_areaBound[x, y, z] = this.m_cubeAreaObject[i].GetComponent <Renderer>().bounds;
        }
    }