Csharp/C#教程:Unity使用EzySlice实现模型多边形顺序切割分享

Unity使用EzySlice实现模型切割,供大家参考,具体内容如下

老规矩,直接上代码:

注意:脚本搭载和需要的材质球以及切割数组填充

EzySlice多边形顺序切割

usingSystem.Collections; usingSystem.Collections.Generic; usingUnityEngine; usingEzySlice; publicclassSplitterModel_ZH:MonoBehaviour { //切割预制体材质 publicMaterial_NewMaterial; //被切割预制体数组 publicList<GameObject>_ListGamPreFab; //调用切割模型数组序号 privateint_ListInt=0; voidUpdate() { if(Input.GetMouseButtonDown(0)) { StartCoroutine(SlicedModel()); } } publicIEnumeratorSlicedModel() { if(_ListGamPreFab!=null) { //创建忽略切割对象 Collider[]_Colliders=Physics.OverlapBox(_ListGamPreFab[_ListInt].transform.position,newVector3(4,0.00005f,4),_ListGamPreFab[_ListInt].transform.rotation,~LayerMask.GetMask("Solid")); foreach(varitemin_Colliders) { //销毁当前被切割物体 Destroy(item.gameObject); //切割出现的物体 SlicedHull_SlicedHull=item.gameObject.Slice(_ListGamPreFab[_ListInt].transform.position,_ListGamPreFab[_ListInt].transform.up); if(_SlicedHull!=null) { //切割下半部分部分物体 GameObject_Lower=_SlicedHull.CreateLowerHull(item.gameObject,_NewMaterial); //切割上半部分部分物体 GameObject_Upper=_SlicedHull.CreateUpperHull(item.gameObject,_NewMaterial); //销毁切割形成的上半部分 Destroy(_Lower); //添加网格组件 _Upper.AddComponent<MeshCollider>(); //当前切割物体消失(可扩展) _ListGamPreFab[_ListInt].gameObject.SetActive(false); #region弃用 //for(inti=0;i<_objs.Length;i++) //{ //_objs[i].AddComponent<Rigidbody>(); //_objs[i].AddComponent<MeshCollider>().convex=true; ////奇偶判断如果是奇数 //if((i&1)!=0) //{ //} //} #endregion } } } _ListInt++; //延迟执行 yieldreturnnewWaitForSeconds(0.5f); //判断数组大小 if(_ListInt==_ListGamPreFab.Count) { //停止协程 StopCoroutine(SlicedModel()); } else { StartCoroutine(SlicedModel()); } } }

补充一点:当前切割数组可扩展,可以使用LineRender绘画实现自定义,只不过我没时间去写。
如果有那位大神写了请帮忙踢我一下,哈哈哈。

链接:UnityLineRender绘画

初始状态:

Unity使用EzySlice实现模型多边形顺序切割

脚本搭载情况:

Unity使用EzySlice实现模型多边形顺序切割

最终效果:

Unity使用EzySlice实现模型多边形顺序切割

您可能感兴趣的文章:Unity3D实现自动寻路Unity切割图集转换为多张图片Unity实现简单手势识别Unity实现喷漆效果UnityWebRequest前后端交互实现过程解析Unity实现本地文本多语言化Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

标签: ce 模型 ni ice li

小程序实现简单语音聊天的示例代码

如何通过命令行进入python

上述就是C#学习教程:Unity使用EzySlice实现模型多边形顺序切割分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/903839.html

(0)
上一篇 2021年10月21日
下一篇 2021年10月21日

精彩推荐