/// <summary> /// Clones the character model useful. /// </summary> /// <returns>The character view model.</returns> /// <param name="viewCmpt">View cmpt.</param> public static GameObject CloneCharacterViewModel(Pathea.BiologyViewCmpt viewCmpt, bool takePhoto = false) { if (viewCmpt == null) { return(null); } GameObject viewGameObj = viewCmpt.CloneModel(); if (viewGameObj == null) { return(null); } ResetCloneModel(viewGameObj, takePhoto); return(viewGameObj); }
public void ResetViewCmpt(Pathea.BiologyViewCmpt viewCmpt) { if (viewCmpt == null) { return; } if (mViewObj != null) { modelAngle = mViewObj.transform.localRotation.eulerAngles; GameObject.Destroy(mViewObj); } mViewObj = viewCmpt.CloneModel(); if (mViewObj == null) { return; } mViewObj.name = "Player"; mViewObj.transform.parent = mEqPhoto.transform; mViewObj.transform.localPosition = Vector3.zero; mViewObj.transform.localRotation = Quaternion.Euler(modelAngle); mViewObj.layer = Layer.ShowModel; Renderer[] renders = mViewObj.GetComponentsInChildren <Renderer>(); for (int i = 0; i < renders.Length; i++) { renders[i].gameObject.layer = renders[i].gameObject.layer == Layer.GIEProductLayer ? Layer.ShowModelCreation : Layer.ShowModel; } Projector[] projectors = mViewObj.GetComponentsInChildren <Projector>(); for (int i = 0; i < projectors.Length; i++) { projectors[i].gameObject.layer = Layer.ShowModelCreation; } mBodyViewCtr.SetTarget(mViewObj, ViewCameraControler.ViewPart.VP_All); Camera mCam = mBodyViewCtr.GetComponent <Camera>(); mCam.depth = 0; mCam.transform.parent = null; mCam.transform.position = mViewObj.transform.position + new Vector3(0, 1.31f, 1.883728f); mCam.transform.localEulerAngles = new Vector3(11, 180, 0); mCam.cullingMask = Layer.Mask.ShowModel | Layer.Mask.ShowModelCreation; mCam.nearClipPlane = 0.1f; try { Component[] comps = mViewObj.GetComponentsInChildren <Component>(true); foreach (Component comp in comps) { //if(null != (comp as Rigidbody)) // mViewObj.GetComponent<Rigidbody>() .constraints = RigidbodyConstraints.FreezeAll; //else if (null == (comp as Animator) && null == (comp as SkinnedMeshRenderer) && null == (comp as Transform) ) { MonoBehaviour.Destroy(comp); } } } catch { Debug.Log("delect equipment modle cmpt error!"); } }