赞
踩
为了更清楚的了解插件是如何使用的,我们先看看如何手动实现这样的切割效果。
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中,然后分别创建切割的两块物体,最后把原来的物体关闭,代码如下:
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using EzySlice;
-
- public class SlicerTest : MonoBehaviour
- {
- //要切割的物体为source
- public GameObject source;
-
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
- if (Input.GetKeyDown(KeyCode.C))
- {
- //将Souce切割,传入的第一个参数为切割的位置(即刀片的位置),传入的第二个参数为切割面的法向量(即刀片表面的法向量)
- SlicedHull hull = source.Slice(transform.position, transform.up);
-
- //创建把source切割以后的上半部分物体
- hull.CreateUpperHull(source);
- //创建把source切割以后的下半部分物体
- hull.CreateLowerHull(source);
-
- //因为是新建切出来两个物体,因此要把原来的物体关闭
- source.SetActive(false);
- }
- }
- }
6.为了区分,我们给Cube和刀片分别上不同的材质。
7.我们把Cube拖动到SlicerTest的source下。
8.运行,然后把刀片移动到Cube上,按下C键进行切割,我们会发现Cube完美沿着刀片被切割,Cube被切成两块,一块名叫Upper_Hull,一块名叫Lower_Hull,之前的Cube仍然存在,我们把它关闭了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。