本文主要是介绍关于切割插件ezy-slice的使用与插件的下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于关于ezy-slice这款插件,在unity商城中并不能下载到,我将会将插件留着下方,放心是免费的!
那么来说说这款插件怎么使用的吧!
1.可以将ezy-slice这个文件夹直接拖入到unity项目中。
2.在场景中建一个名为spli的cube压扁,来做切割面,然后再建几个cube和一个plane分别作为切割物体和地面,注意一点就是 将地面和切割面的层Layer都设置为ground
3.然后就是代码了,给spli 添加脚本Splittle
然后脚本书写如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EzySlice;public class Splittle : MonoBehaviour
{// Start is called before the first frame updatepublic Material mat;void Start(){}// Update is called once per framevoid Update(){float mx = Input.GetAxis("Mouse X");transform.Rotate(0, 0, -mx);if (Input.GetMouseButtonDown(0)){Collider[] colliders = Physics.OverlapBox(transform.position, new Vector3(1.5f, 0.05f, 1.5f), transform.rotation, ~LayerMask.GetMask("ground")); //用于检查除ground层外的物体foreach (Collider C in colliders){Destroy(C.gameObject); //先销毁切割到的物体,不然切割之后原先物体并不会消失// GameObject[] OBJS = C.gameObject.SliceInstantiate(transform.position, transform.up); //也可用次方法切割SlicedHull hull = C.gameObject.Slice(transform.position ,transform.up); // 获取切割到的物体GameObject low= hull.CreateLowerHull(C .gameObject,mat); //切割下面的物体对切割面设置材质GameObject up= hull.CreateUpperHull(C.gameObject,mat); //切割上面的物体对切割面设置材质GameObject[] OBJS = new GameObject[] {low,up };foreach (GameObject obj in OBJS){obj.AddComponent<Rigidbody>();obj.AddComponent<MeshCollider>().convex = true;}}}}
}
最后切割效果如下:
添加链接描述
链接:https://pan.baidu.com/s/1QHp_Go7f4pQ9QBLQtig2EQ
提取码:2uqj
这篇关于关于切割插件ezy-slice的使用与插件的下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!