- 博客(6)
- 收藏
- 关注
原创 Unity实现换装功能
最后获取人物自身的所有骨骼信息存入字典中,再将需要替换的部位的骨骼信息存入集合中,循环集合中的骨骼信息判断是否与人物的骨骼信息一致,将所有相同信息的骨骼存入集合,再将集合存入到SkinnedMeshRenderer组件的骨骼信息中,运行实现效果,代码如下。,再为角色创建新的网格和合并网格集合,获取所有换装部位的sharedMesh存入合并网格集合,再将所有合并网格信息转为数组存入新创建的人物网格信息中。首先,将所有需要替换的部位预制体添加组件SkinnedMeshRenderer。
2023-08-20 19:43:05
336
1
原创 绘制Mesh网格地图
根据图片的灰度值获取绘制点位信息,再添加绘制顺序,最后给MeshFilter赋值mesh网格信息。先定义地图长和宽(x,y)使用柏林噪音算法生成随机点位,绘制出灰度图。最后生成随机地形如图。
2023-08-17 20:55:59
158
1
原创 制作2D轮转图
再计算出每个物体的具体坐标位置(x),因为是2D物体在同一平面,所以没有z轴的变化,只能按近大远小的效果来模拟远近效果,根据z的数值来计算出缩放的倍率 p=(z+r)÷(2*r),z的取值范围是0≤z≤半径(r),再求出缩放的大小(最近时显示的大小-最小时显示大小)*p+最小时显示大小。再给每个图片的位置赋值,由于同一平面只有x轴的坐标变化,所以只给物体的x坐标赋值就可以。拖拽图片移动先取得拖拽的距离,再根据距离求出移动的弧度,调用物体旋转的方法让所有图片旋转实现旋转的效果,代码如下。
2023-08-16 20:47:25
80
1
原创 实现3D轮转图
首先,根据轮转图个数和间距分别计算周长、半径、每个物体之间的弧度,根据三角函数计算每个物体的具体坐标位置,将生成的物体存入集合。拖拽物体旋转,获取鼠标拖拽的距离和拖拽物体的位置坐标,计算拖拽的的距离,代码如下。根据sortlist[0]的位置来计算需要对齐的角度和移动的距离,并根据减速度计算出所需时间,调用物体移动的方法传入移动距离参数,根据距离计算移动的弧度重新设置每个物体的坐标位置。让物体具有旋转的惯性,首先获得抬起鼠标时的距离,根据减速速度计算得出减速所需要的时间。手写DoTween代码如下。
2023-08-15 21:11:12
68
1
原创 绘制雷达图
判断如果不足大于等于三个数据(三个点绘制成一个面),则绘制默认图形,代码如下。定义Sprite类变量给雷达图赋值图片,重写获取图片的属性,代码如下。计算每个点位的坐标位置信息并添加到顶点助手之后添加绘制顺序,代码如下。定义雷达图数据浮点型数组,重写OnPopulateMesh方法。首先清除顶点位置信息、计算雷达图的宽高、计算每个点之间的弧度。添加按钮随机生成雷达图定义集合并存入随机数(集合长度大于3)将集合转换成数组,最后清除顶点脏数据重新生成雷达图。创建脚本继承MaskableGraphic类。
2023-08-14 20:42:44
39
原创 绘制物体的mesh网格
在顶点集合中添加顶点位置,在绘制顺序集合中添加绘制顺序(顺时针绘制可以看见mesh网格,逆时针可以在背面看见网格)绘制碰撞器网格获取MeshCollider中的sharedMesh,将mesh数据赋值给sharedMesh。先给空对象添加组件(MeshFilter网格过滤器,MeshRenderer网格渲染器)绘制反方向的物体则需要将绘制的物体绘制顺序反向存到集合中,顶点顺序不变。脚本创建顶点集合(Vector3类型)和绘制顺序集合(int类型)把顶点数据和绘制顺序赋值给MeshFilter(转成数组)
2023-08-13 21:37:21
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人