Exemple #1
0
    private void DestroySelectedObject()
    {
        DioramaObject d = WorldBuilderMain.selectedObject.GetComponent <DioramaObject>();

        manager.DestoryObject(WorldBuilderMain.selectedObject);
        WorldBuilderMain.ChooseSelectionModeType();
    }
Exemple #2
0
    private void PickupSelected()
    {
        DioramaObject d = softSelected.GetComponent <DioramaObject>();

        manager.mhObjectPoint.position = softSelected.transform.position;
        //WorldBuilderMain.offsetPosition = softSelected.transform.position - manager.mhObjectPoint.position;

        WorldBuilderMain.selectedObject     = softSelected;
        WorldBuilderMain.lastObjectPosition = WorldBuilderMain.selectedObject.transform.localPosition;
        WorldBuilderMain.lastObjectRotation = WorldBuilderMain.selectedObject.transform.localRotation;

        manager.mhObjectPoint.transform.rotation = WorldBuilderMain.selectedObject.transform.rotation;
        WorldBuilderMain.objectScale             = softSelected.transform.localScale.x;
    }
Exemple #3
0
    private void ReplacePH()
    {
        foreach (GameObject ph in placeholders)
        {
            DioramaObject dio = ph.GetComponent <DioramaObject>();
            BundleItem    t   = TODV2.GetItemByID(dio.todID);

            string path = t.TopFolder.ToString() + @"\";
            path += t.BundleName + @"\" + (t.FolderPath.Replace(",", @"\")) + @"\";
            path += t.prefabName.Replace(".prefab", "");
            path += " Rigged";
            GameObject next = GameObject.Instantiate(Resources.Load(path, typeof(GameObject)), ph.transform.position, ph.transform.rotation, ph.transform.parent) as GameObject;
            ph.SetActive(false);
        }
    }
Exemple #4
0
    public static void SoftSelect()
    {
        Collider[] hits = Physics.OverlapSphere(manager.mainPointer.position, manager.dioramaScale / 100f);

        float nearest = float.MaxValue;

        foreach (Collider h in hits)
        {
            DioramaObject d = GetTopDO(h);
            if (d && (WorldBuilderMain.currentLayer == 0 || d.layer == WorldBuilderMain.currentLayer || d.layer == 0))
            {
                GameObject go = d.gameObject;

                if (ignore.Contains(go))
                {
                    continue;
                }

                float check = Vector3.Distance(manager.mainPointer.position, go.transform.position);

                if (check < nearest)
                {
                    nearest      = Vector3.Distance(manager.mainPointer.position, go.transform.position);
                    softSelected = go;
                }
            }
        }
        if (softSelected)
        {
            SkinnedMeshRenderer[] smr = softSelected.GetComponentsInChildren <SkinnedMeshRenderer>();
            foreach (SkinnedMeshRenderer sr in smr)
            {
                lastMats2.Add(sr, sr.materials);
                sr.material = manager.nodeS;
            }

            Renderer[] rend = softSelected.GetComponentsInChildren <Renderer>();
            foreach (Renderer r in rend)
            {
                lastMats.Add(r, r.materials);
                r.material = manager.nodeS;
            }
        }
    }
Exemple #5
0
    private void StampCopy()
    {
        //LowPolyWaterScript lpws = WorldBuilderMain.selectedObject.GetComponentInChildren<LowPolyWaterScript>();
        //if (lpws != null)
        //{
        //    //lpws.sun = manager.dioramaLight.GetComponent<Light>();
        //}

        GameObject    go = Common.CopyGo(WorldBuilderMain.selectedObject, new Vector3(WorldBuilderMain.objectScale, WorldBuilderMain.objectScale, WorldBuilderMain.objectScale), manager.currentModeParent, false, false);
        DioramaObject d  = go.GetComponent <DioramaObject>();

        if (WorldBuilderMain.currentLayer != 0)
        {
            d.layer = WorldBuilderMain.currentLayer;
        }
        else
        {
            d.layer = WorldBuilderMain.selectedObject.GetComponent <DioramaObject>().layer;
        }

        DestroyAnimator();
    }
    private void SpawnNewObject(Node n)
    {
        manager.mhObjectPoint.position = manager.mainPointer.position;
        Vector3 scale = new Vector3(objectScale, objectScale, objectScale);

        manager.mhObjectPoint.transform.rotation = n.go.transform.rotation;
        GameObject next = Common.CopyGo(n.go, scale, null, true, true);

        selectedObject            = next;
        next.transform.localScale = scale;

        SetTag(next.transform, "TableObject", LayerMask.NameToLayer("PlayTable"));
        DioramaObject d = next.AddComponent <DioramaObject>();

        d.layer = currentLayer;
        selectedTodObj.todID     = n.todID;
        selectedTodObj.layer     = WorldBuilderMain.currentLayer;
        selectedTodObj.gridScale = n.gridScale;
        n.SoftReset();

        next.transform.parent     = manager.currentModeParent;
        next.transform.localScale = scale;
    }
Exemple #7
0
    IEnumerator RebuildGo(DioramaObjectSaver dos, Transform transform, bool addCollider = true)
    {
        GameObject go = null;

        if (dos.todID >= 0)
        {
            BundleItem t = TODV2.GetItemByID(dos.todID);

            string path = t.TopFolder.ToString() + @"\";
            path += t.BundleName + @"\" + (t.FolderPath.Replace(",", @"\")) + @"\";
            path += t.prefabName.Replace(".prefab", "");

            if (t.loadFromResources)
            {
                go = GameObject.Instantiate(Resources.Load(path, typeof(GameObject))) as GameObject;
            }
            else
            {
                try
                {
                    AssetBundle ab = AssetBundleManager.GetAssetBundle(t.BundleName).assetBundle;
                    go = Instantiate(ab.LoadAsset(t.PrefabName, typeof(GameObject))) as GameObject;
                    Common.ReassignTextures(go, t.HasLight);
                }
                catch (Exception e)
                {
                    Debug.Log(t.prefabName + " ID: " + t.id + " failed to load -- " + e.StackTrace);
                }
            }
            Common.ReassignTextures(go, t.HasLight);

            go.name                    = "Object";
            go.transform.parent        = transform;
            go.transform.localPosition = dos.savedPos;
            go.transform.localRotation = dos.savedRot;
            go.transform.localScale    = dos.savedScale;


            DioramaObject newDio = go.AddComponent <DioramaObject>();
            newDio.todID      = dos.todID;
            newDio.savedPos   = dos.savedPos;
            newDio.savedRot   = dos.savedRot;
            newDio.savedScale = dos.savedScale;

            newDio.gridScale = t.gridScale;
            newDio.layer     = dos.layer == 0 ? 1 : dos.layer;

            Common.DestroyAll(go);

            CheckAnimation(go);
            List <CharPose> pose     = dos.savedCharPose;
            Transform[]     allTrans = go.GetComponentsInChildren <Transform>();
            for (int i = 0; i < allTrans.Count(); i++)
            {
                CharPose next = pose[i];
                allTrans[i].localPosition = next.savedPos;
                allTrans[i].localRotation = next.savedRot;
            }

            TextMeshPro tmp = go.GetComponentInChildren <TextMeshPro>();
            if (tmp)
            {
                tmp.text = dos.text;
            }

            if (go.tag == "Untagged")
            {
                go.tag = "TableObject";
            }

            //IEventScale ies = go.GetComponentInChildren<IEventScale>();
            //if (ies != null)
            //{
            //    go.transform.localScale = Vector3.one;
            //    for (int i = 0; i < dos.savedScale.x; i++)
            //    {
            //        ies.ScaleUp();
            //    }
            //}
        }
        yield return(null);
    }