public void ResetAppearance()
    {
        var allModels = GetAll();

        foreach (var model in allModels)
        {
            model.SetActive(false);
        }
        meshCombiner.UndoCombineMeshes();
    }
Exemple #2
0
    public void WearItem(Item item)
    {
        if (item.type == Item.ItemType.Fish || item.type == Item.ItemType.None)
        {
            return;
        }

        if (item.type == Item.ItemType.Shoe)
        {
            Instance.nvAgent.speed = item.data.movementSpeed;
        }

        var sameItems = Equipment.Where(x => x.type == item.type);

        if (sameItems.Count() > 0)
        {
            UnwearItem(sameItems.ElementAt(0));
        }

        Equipment.Add(item);

        if (item.type == Item.ItemType.Rod)
        {
            return;
        }

        foreach (var child in item.transform.GetComponentsInChildren <Transform>())
        {
            child.gameObject.layer = LayerMask.NameToLayer("Player");
        }

        var reassignWeights = item.rendererGameObject.GetComponent <ReassignBoneWeigthsToNewMesh>();

        item.transform.position = transform.position;
        item.rendererGameObject.transform.parent = transform;

        if (smCombiner.isMeshesCombined())
        {
            smCombiner.UndoCombineMeshes(true, true);
        }

        reassignWeights.newArmature  = Instance.armature;
        reassignWeights.rootBoneName = "Spine1";
        reassignWeights.Reassign();


        smCombiner.CombineMeshes();
    }
    private IEnumerator OptimizeAppearance(Action afterUndo)
    {
        yield return(new WaitForSeconds(0.1f));

        int meshLayer = -1;
        var cm        = GetCombinedMesh();

        if (cm)
        {
            meshLayer = meshCombiner.gameObject.layer;
            meshCombiner.UndoCombineMeshes();
        }


        afterUndo?.Invoke();

        yield return(new WaitForFixedUpdate());

        meshCombiner.meshesToIgnore.Clear();
        var petControllers = gameObject.transform.GetComponentsInChildren <PetController>();

        foreach (var pet in petControllers)
        {
            var renderer = pet.GetComponentInChildren <SkinnedMeshRenderer>();
            if (renderer && renderer.sharedMesh)
            {
                meshCombiner.meshesToIgnore.Add(renderer);
            }
        }

        yield return(new WaitForFixedUpdate());

        meshCombiner.CombineMeshes();
        gameManager.Camera.EnsureObserverCamera();
    }
    public void Optimize(Action afterUndo = null)
    {
        int meshLayer = -1;

        if (transform.Find("Combined Mesh"))
        {
            meshLayer = meshCombiner.gameObject.layer;
            meshCombiner.UndoCombineMeshes();
        }


        afterUndo?.Invoke();

        meshCombiner.meshesToIgnore.Clear();
        var petControllers = gameObject.transform.GetComponentsInChildren <PetController>();

        foreach (var pet in petControllers)
        {
            var renderer = pet.GetComponentInChildren <SkinnedMeshRenderer>();
            if (renderer && renderer.sharedMesh)
            {
                meshCombiner.meshesToIgnore.Add(renderer);
            }
        }

        meshCombiner.CombineMeshes();
        gameManager.Camera.EnsureObserverCamera();
    }
 public void ButtonM()
 {
     //Example of API to merge and undo merge
     if (charM.isMeshesCombined() == true)
     {
         charM.UndoCombineMeshes(true, true);
     }
     else
     {
         charM.CombineMeshes();
     }
 }
    public void ResetAppearance()
    {
        var allModels = GetAll();

        foreach (var model in allModels)
        {
            if (model != null)
            {
                model.SetActive(false);
            }
        }

        if (!meshCombiner)
        {
            return;
        }
        if (meshCombiner.isMeshesCombineds)
        {
            meshCombiner.UndoCombineMeshes();
        }
    }
    public void ResetAppearance()
    {
        var allModels = GetAll();

        foreach (var model in allModels)
        {
            model?.SetActive(false);
        }
        if (meshCombiner?.isMeshesCombineds ?? false)
        {
            meshCombiner?.UndoCombineMeshes();
        }
    }
Exemple #8
0
 public void MeRg()
 {
     if (_Combiner.isMeshesCombined())
     {
         Stopwatch watch = Stopwatch.StartNew();
         _Combiner.UndoCombineMeshes(true, false);
         Debug.Log("Uncombining took: " + watch.ElapsedMilliseconds);
     }
     else
     {
         Stopwatch watch = Stopwatch.StartNew();
         _Combiner.CombineMeshes();
         Debug.Log("combining took: " + watch.ElapsedMilliseconds);
     }
 }