コード例 #1
0
 public void DestroySelected()
 {
     if (selected != null)
     {
         while (selected.transform.childCount != 0)
         {
             var tr = selected.transform.GetChild(0);
             tr.SetParent(null);
             Destroy(tr.gameObject);
         }
         ShowHandles();
         BlendshapeEditor.HideMenu();
     }
 }
コード例 #2
0
    public static void AddSelectItem(GameObject item)
    {
        if (instance.selected.transform.childCount == 0)
        {
            instance.selected.transform.position = item.transform.root.position;

            var sRend = item.transform.root.gameObject.GetComponentInChildren <SkinnedMeshRenderer>();
            if (sRend != null)
            {
                BlendshapeEditor.ShowMenu(sRend, item.transform.root.gameObject.GetComponentInChildren <InfoOnBlock>());
            }
            else
            {
                BlendshapeEditor.HideMenu();
            }
        }
        if (item.transform.root.gameObject == instance.selected)
        {
            var curr = item.transform;
            for (int i = 0; i < 200; i++)
            {
                if (curr == null)
                {
                    return;
                }
                if (curr.gameObject.GetComponent <InfoOnBlock>())
                {
                    curr.SetParent(null, true);
                    break;
                }
                curr = curr.parent;
            }
        }
        else
        {
            item.transform.SetParent(instance.selected.transform, true);
        }

        instance.ShowHandles();
    }
コード例 #3
0
    public static void SelectItem(GameObject item)
    {
        if (item == instance.selected)
        {
            DeselectAll();
            return;
        }
        instance.selected.transform.DetachChildren();
        instance.selected.transform.position = item.transform.position;

        item.transform.SetParent(instance.selected.transform, true);

        instance.ShowHandles();
        var sRend = item.GetComponentInChildren <SkinnedMeshRenderer>();

        if (sRend != null)
        {
            BlendshapeEditor.ShowMenu(sRend, item.GetComponentInChildren <InfoOnBlock>());
        }
        else
        {
            BlendshapeEditor.HideMenu();
        }
    }
コード例 #4
0
 private void Start()
 {
     instance = this;
     gameObject.SetActive(false);
 }
コード例 #5
0
    public static void SpawnFull(BlockInfo info, Vector3 pos, float[] Blendshapes, Vector3 rot, bool addSelect = true)
    {
        var block = ListBlockTypes.AllBlocks.types [info.BlockId];

        GameObject[] tile = null;
        switch (info.TileTypeId)
        {
        case 0:
            switch (info.MyTileKind)
            {
            case TileKind.Normal:
                tile = block.wallTiles [info.UpperVariation].variations;
                break;

            case TileKind.InnerCorner:
                tile = block.wallTiles [info.UpperVariation].innerCorners;
                break;

            case TileKind.OuterCorner:
                tile = block.wallTiles [info.UpperVariation].outerCorners;
                break;

            default:
                break;
            }
            break;

        case 1:
            switch (info.MyTileKind)
            {
            case TileKind.Normal:
                tile = block.floorTiles [info.UpperVariation].variations;
                break;

            case TileKind.InnerCorner:
                tile = block.floorTiles [info.UpperVariation].innerCorners;
                break;

            case TileKind.OuterCorner:
                tile = block.floorTiles [info.UpperVariation].outerCorners;
                break;

            default:
                break;
            }
            break;

        case 2:
            switch (info.MyTileKind)
            {
            case TileKind.Normal:
                tile = block.ceilingTiles [info.UpperVariation].variations;
                break;

            case TileKind.InnerCorner:
                tile = block.ceilingTiles [info.UpperVariation].innerCorners;
                break;

            case TileKind.OuterCorner:
                tile = block.ceilingTiles [info.UpperVariation].outerCorners;
                break;

            default:
                break;
            }
            break;

        case 3:
            tile = block.traps;
            break;

        case 4:
            tile = block.puzzles;
            break;

        case 5:
            tile = block.other;
            break;

        default:
            break;
        }

        if (tile.Length == 0)
        {
            return;
        }

        info.Variation += 10 * tile.Length;
        info.Variation %= tile.Length;

        var go = Instantiate(tile [info.Variation]);

        go.transform.position = pos;
        if (rot != Vector3.zero)
        {
            go.transform.rotation = Quaternion.Euler(rot);
        }
        var iOb = go.AddComponent <InfoOnBlock> ();

        iOb.Info        = info;
        iOb.Blendshapes = Blendshapes;
        if (iOb.Blendshapes != null)
        {
            BlendshapeEditor.ApplyAll(iOb.GetComponent <SkinnedMeshRenderer> (), iOb);
        }

        if (addSelect)
        {
            BlockManipulator.AddSelectItem(go);
        }
    }
コード例 #6
0
 public static void DeselectAll()
 {
     instance.selected.transform.DetachChildren();
     instance.ShowHandles();
     BlendshapeEditor.HideMenu();
 }