当前位置:   article > 正文

使用Ezy-Slice插件实现类似Beat Saber的模型切割效果(一)_ezyslice

ezyslice

简单地手动实现模型切割效果

为了更清楚的了解插件是如何使用的,我们先看看如何手动实现这样的切割效果。

1.在Github上下载插件ezy-slice。

地址:https://github.com/DavidArayan/ezy-slice

 

然后在Github上下载示例场景ezyslice-examples-scenes(可选)。

地址:https://github.com/DavidArayan/EzySlice-Example-Scenes

 

2.下载好了全部解压,然后将“EzySlice”文件夹导入到Asset目录,将“Examples”文件夹导入Asset目录(自己在压缩包里面找)。

 

3.打开Unity,新建场景,创建一个Cube。

 

4.新建一个空物体,命名为“Slicer”,作为刀片,给“Slicer”新建一个脚本SlicerTest

我们可以给Slicer加一个Plane子物体来作为刀片的显示。

5.在SlicerTest脚本里面写代码

(1)首先要引入插件的命名空间。

using EzySlice;

(2)代码的总体思路是先把Game Object切割,保存到SlicedHull中,然后分别创建切割的两块物体,最后把原来的物体关闭,代码如下:

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using EzySlice;
  5. public class SlicerTest : MonoBehaviour
  6. {
  7. //要切割的物体为source
  8. public GameObject source;
  9. // Start is called before the first frame update
  10. void Start()
  11. {
  12. }
  13. // Update is called once per frame
  14. void Update()
  15. {
  16. if (Input.GetKeyDown(KeyCode.C))
  17. {
  18. //将Souce切割,传入的第一个参数为切割的位置(即刀片的位置),传入的第二个参数为切割面的法向量(即刀片表面的法向量)
  19. SlicedHull hull = source.Slice(transform.position, transform.up);
  20. //创建把source切割以后的上半部分物体
  21. hull.CreateUpperHull(source);
  22. //创建把source切割以后的下半部分物体
  23. hull.CreateLowerHull(source);
  24. //因为是新建切出来两个物体,因此要把原来的物体关闭
  25. source.SetActive(false);
  26. }
  27. }
  28. }

6.为了区分,我们给Cube和刀片分别上不同的材质。

 

7.我们把Cube拖动到SlicerTest的source下。

8.运行,然后把刀片移动到Cube上,按下C键进行切割,我们会发现Cube完美沿着刀片被切割,Cube被切成两块,一块名叫Upper_Hull,一块名叫Lower_Hull,之前的Cube仍然存在,我们把它关闭了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/82174
推荐阅读
相关标签
  

闽ICP备14008679号