if (skill.move != 0)
{
//计算移动后的位置
Vector3 endpos = begin.transform.position + nullpos * skill.move;
//计数(看是否每帧都需要残影)
int shadownum = 0;
//使用DOTween移动
DOTween.To((t) =>
{
//线性差值移动
begin.transform.position = Vector3.Lerp(begin.transform.position, endpos, t);
shadownum++;
//if (shadownum % 2 == 0)
{
//获取每帧的模型
Mesh mesh = new Mesh();
//为了镜头稳定在模型外面套了空物体,子物体才是模型,所有要获取子物体
Transform child = begin.transform.GetChild(0);
SkinnedMeshRenderer sk = child.GetComponent<SkinnedMeshRenderer>();
sk.BakeMesh(mesh);
//创建一个能显示模型的预制体
GameObject shadow = Instantiate(Resources.Load<GameObject>("Shadow"));
//获取模型的材质球
List<Material> materials = new List<Material>();
for (int i = 0; i < sk.materials.Length; i++)
{
//使用一个可以半透明的shader创建新的材质球
Material material = new Material(Shader.Find("Custom/Face"));
material.SetTexture("_MainTex", sk.materials[i].GetTexture("_MainTex"));
material.SetTexture("_FaceTex", sk.materials[i].GetTexture("_FaceTex"));
material.color = new Color(1, 1, 1, 0.2f);
materials.Add(material);
}
//给预制体添加模型和材质
shadow.GetComponent<Shadow>().Init(mesh, materials.ToArray());
//设置位置
shadow.transform.position = child.position;
}
}, 0, 1, skill.casttime);
}
unity移动残影
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 书籍作者: 乔恩·曼宁(Jon Manning) 著,赵利通 译ISBN:9787115488794推荐程度: 有...
- 1-变换组件移动物体 这幅图现在理解还不深刻,先放在这,日后再来补全。 1.1相关方法首先要将脚本挂到这个cube...
- 0. 写在之前 其实针对这个问题已经写了一篇很简单的填坑笔记了,但是UWA说希望那篇文章稍微扩充一下放到USpar...