//========================================================================================= /// <summary> /// メッシュのワールド座標/法線/接線を返す(エディタ設定用) /// </summary> /// <param name="wposList"></param> /// <param name="wnorList"></param> /// <param name="wtanList"></param> /// <returns>頂点数</returns> public override int GetEditorPositionNormalTangent( out List <Vector3> wposList, out List <Vector3> wnorList, out List <Vector3> wtanList ) { wposList = new List <Vector3>(); wnorList = new List <Vector3>(); wtanList = new List <Vector3>(); if (Application.isPlaying) { if (Status.IsDispose) { return(0); } if (IsMeshUse() == false || TargetObject == null) { return(0); } Vector3[] posArray = new Vector3[VertexCount]; Vector3[] norArray = new Vector3[VertexCount]; Vector3[] tanArray = new Vector3[VertexCount]; MagicaPhysicsManager.Instance.Mesh.CopyToRenderMeshWorldData(MeshIndex, TargetObject.transform, posArray, norArray, tanArray); wposList = new List <Vector3>(posArray); wnorList = new List <Vector3>(norArray); wtanList = new List <Vector3>(tanArray); return(VertexCount); } else { if (TargetObject == null) { return(0); } var ren = TargetObject.GetComponent <Renderer>(); MeshUtility.CalcMeshWorldPositionNormalTangent(ren, sharedMesh, out wposList, out wnorList, out wtanList); return(wposList.Count); } }
//========================================================================================= /// <summary> /// メッシュのワールド座標/法線/接線を返す(エディタ設定用) /// </summary> /// <param name="wposList"></param> /// <param name="wnorList"></param> /// <param name="wtanList"></param> /// <returns>頂点数</returns> public override int GetEditorPositionNormalTangent( out List <Vector3> wposList, out List <Vector3> wnorList, out List <Vector3> wtanList ) { wposList = new List <Vector3>(); wnorList = new List <Vector3>(); wtanList = new List <Vector3>(); if (Application.isPlaying) { if (IsMeshUse() == false) { return(0); } Vector3[] posArray = new Vector3[VertexCount]; Vector3[] norArray = new Vector3[VertexCount]; Vector3[] tanArray = new Vector3[VertexCount]; MagicaPhysicsManager.Instance.Mesh.CopyToVirtualMeshWorldData(MeshIndex, posArray, norArray, tanArray); wposList = new List <Vector3>(posArray); wnorList = new List <Vector3>(norArray); wtanList = new List <Vector3>(tanArray); return(VertexCount); } else { if (MeshData == null || TargetObject == null || boneList.Count == 0) { return(0); } MeshUtility.CalcMeshWorldPositionNormalTangent(MeshData, boneList, out wposList, out wnorList, out wtanList); return(MeshData.VertexCount); } }