ezy-slice 使用笔记
[toc]
下载
学习资料
第一个教程基本正确,但是有一些跳跃,和下面的b站的视频教程结合起来就相对好理解一些,可以设置物体的材质以及下文的”旋转”.
代码
参考资料里面的代码少了关键的两行,导致平面无法旋转.已在下文中指出.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// SlicerTest.cs
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()
{
// 此处需要加下面两行,否则平面无法转动
float mx = Input.GetAxis("Mouse X");
transform.Rotate(0, 0, -mx);
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);
}
}
}
效果
平面会根据鼠标的位置进行旋转.按C键切割(如果平面和方块无接触,那么console中会报错),可通过左侧的层次管理器看到Upper_Hull
和Lower_Hull
的出现,然后在scene中切换到Shaded Wireframe
模式下可清晰看到方块已经被切割.