学习目标:
Demo01
运行后
拖动
切割
学习内容:
这个东西,就是一个加载一个碰撞体背景的函数,没啥用可以关
这个东西好像是周围的那圈描边,不影响主要功能,也可以关
这个东西是保证你物体能切割的主要东西 (渲染相关也在里面)
这东西是你鼠标画线的东西
Slicer2D
渲染设置
textureType:1,Sprite (这个是按照图片渲染)
这个开了会这样。。。(切割后会出现一个小一号的实例,而且锚点和碰撞,他自己的描边都怪怪的)
2,Mesh(这个是按照网格)
要给个材质球(是给切割后物体的,自己的要改MeshRenderer上的),基本上你只要对应上自己的渲染管线能默认的材质球就可以
3, None
顾名思义,不渲染
切割层
SlicingLayer(默认8层)
可以配合他自己的Slicer 2D Controller 的SlicingLayer做剔除,筛选操作
分割上线
SlicingLimit
开启后可以对可以分割上限修改
Ps: 你可以自己套SpriteRender上去,但是和开Sprite模式一样,挺怪的
Slicer 2D Controller
SlicerType:
1,Linear(直线切)
2,Complex(自己画)
3,Point(点)
可以指定竖切横切从任意点向你点的方向切。。。
4,Polygon(多边形)
有点像挖坑了
5,Explode(爆炸)
直接帮你切片了
6,Create(创作)
传一个材质球,画一个图形出来
Visuals(辅助线)
这个东西
对应参数
拓展
这块好像是他被切割的函数
加些代码看看类型
static public List<Slice2D> LinearSliceAll(Pair2f slice, Slice2DLayer layer)
{
List<Slice2D> result = new List<Slice2D> ();
Debug.Log("开切!");
foreach (Slicer2D id in GetList ())
if (id.MatchLayers (layer))
{
Slice2D sliceResult = id.LinearSlice (slice);
if (sliceResult.gameObjects.Count > 0)
result.Add (sliceResult);
}
for (int i = 0; i < result.Count; i++)
{
for (int j = 0; j < result[i].gameObjects.Count; j++)
{
Debug.Log(result[i].gameObjects[j].name);
}
}
return (result);
}
学习产出:
结论:空切也会调用这个函数,返回值是新生成的东西