/// <summary> /// 创建幻影并在lastTime后停止创建 /// </summary> /// <param name="meshRoot">网格根节点,一般为挂载Anmator的物体</param> /// <param name="totalTime">持续创建的时间</param> /// <param name="singleShadowLastTime">单个影子的存在时间</param> /// <param name="timeBetweenTwoGhost">两个影子的间隔时间</param> /// <param name="color">颜色</param> /// <param name="beginAlpha">起始透明度</param> /// <param name="endAlpha">结束时的透明度</param> /// <returns></returns> public GhostObjectInfo BeginCreateGhost(Transform meshRoot, float totalTime, float singleShadowLastTime, float timeBetweenTwoGhost, Color color, float beginAlpha = 1, float endAlpha = 0) { GhostObjectInfo info = new GhostObjectInfo(meshRoot, totalTime, singleShadowLastTime, timeBetweenTwoGhost, color, beginAlpha, endAlpha); ghostInfoList.Add(info); return(info); }
public override void OnStateEnter() { base.OnStateEnter(); h = ownerAnimator.GetFloat("horizontal"); v = ownerAnimator.GetFloat("vertical"); if (h == 0 && v == 0) { v = 1; } rollPos = owner.transform.forward * v + owner.transform.right * h; rollPos = rollPos.normalized; ghostObjectInfo = MeshGhostCreater.Instance.BeginCreateGhost(owner.transform.GetChild(0), 0.5f, 0.1f, Color.black, 1f); }
public void StopCreateGhost(GhostObjectInfo info) { info.totalTime = -1; }
/// <summary> /// 创建幻影 /// </summary> /// <param name="ghostObjectInfo">幻影信息</param> public void BeginCreateGhost(GhostObjectInfo ghostObjectInfo) { ghostInfoList.Add(ghostObjectInfo); }
/// <summary> /// 创建单个幻影 /// </summary> /// <param name="meshRoot">网格节点</param> /// <param name="singleStayTime">单个影子的持续时间</param> /// <param name="ghostColor">颜色</param> /// <param name="beginAlpha">起始透明度</param> /// <param name="endAlpha">结束时的透明度</param> public void CreateSingleGhost(Transform meshRoot, float singleStayTime, Color ghostColor, float beginAlpha = 1, float endAlpha = 0) { GhostObjectInfo info = new GhostObjectInfo(meshRoot, 0.01f, singleStayTime, 0.01f, ghostColor, beginAlpha, endAlpha); ghostInfoList.Add(info); }