コード例 #1
0
ファイル: Block.cs プロジェクト: settamaF/PixelGame
    void SetNumberOnFace(int x, int y, int z, Cube.ESide side)
    {
        float validCount = 0;

        switch (side)
        {
        case Cube.ESide.Front:
        case Cube.ESide.Back:
            validCount = mFrontValidCube[new Vector2(x, y)];
            break;

        case Cube.ESide.Left:
        case Cube.ESide.Right:
            validCount = mLefttValidCube[new Vector2(y, z)];
            break;

        case Cube.ESide.Top:
        case Cube.ESide.Down:
            validCount = mTopValidCube[new Vector2(x, z)];
            break;
        }
        var cube = mCubes[x, y, z];

        cube.SetSideNumber(side, validCount);
        cube.EnableSide(side, true);
    }
コード例 #2
0
    void SelectCubeInLine(Vector2 position)
    {
        Ray        ray = Camera.main.ScreenPointToRay(position);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            var cube = hit.collider.GetComponent <Cube>();
            if (cube)
            {
                Cube.ESide side = cube.GetHitFace(hit);
                Vector3    dir  = Vector3.zero;
                switch (side)
                {
                case Cube.ESide.Front:
                    dir = Vector3.forward;
                    break;

                case Cube.ESide.Back:
                    dir = Vector3.back;
                    break;

                case Cube.ESide.Left:
                    dir = Vector3.right;
                    break;

                case Cube.ESide.Right:
                    dir = Vector3.left;
                    break;

                case Cube.ESide.Top:
                    dir = Vector3.down;
                    break;

                case Cube.ESide.Down:
                    dir = Vector3.up;
                    break;

                default:
                    return;
                }
                var cubes = cube.Parent.SelectCubes(cube.Position, dir);
                foreach (var cubeInList in cubes)
                {
                    SelectCube(cubeInList, cube.State);
                }
            }
        }
    }