【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)

简介: 【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)

前言

我们平时开发游戏,有时会想要实现武器拖尾特效,就像这样。

其实Unity自带了拖尾组件,但他有很大的局限性,当目标仅进行移动,转弯的时候,它是可以胜任的,但是,当物体本身发生旋转的时候,他还是会像之前那样,只是单纯的跟随transform.position进行更新。这里就需要介绍今天推荐的武器拖尾特效插件 —— Pocket RPG Weapon Trails。它的原理是每帧计算Mesh Renderer来更精确让特效贴合武器。

素材下载

Asset Store地址: https://www.assetstore.unity3d.com/en/#!/content/2458

介绍

我们先来看一下他的文档。

这里说几个重要的变量

  1. desiredTime:表示想要让拖尾持续的时间(与time密切相关)
  2. time:表示拖尾从开始出现到完全消失所用的时间(总是在向desiredTime靠近)
  3. timeTransitionSpeed:与time成正比,与fadeTime(在几秒内渐隐)成反比

使用例子

3d的例子有很多,比如:https://blog.csdn.net/akof1314/article/details/37603559

这里我就举一个2d中的使用例子,在我之前做的项目:【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》,实现小鸟发射的拖尾效果

不添加拖尾的效果

添加拖尾

给小鸟添加一个子对象,命名为 Trail,并为其添加 WeaponTrail.cs脚本、 Mesh Renderer组件,材质为Pocket RPG Trails提供的材质(WeaponTrail),设置好如下图所示:


代码控制拖尾生成

新增 TestMyTrail.cs代码为如下:

public class TestMyTrail : MonoBehaviour
{
    public WeaponTrail myTrail;

    private float t = 0.033f;
    private float tempT = 0;
    private float animationIncrement = 0.003f;

    void LateUpdate()
    {
        t = Mathf.Clamp(Time.deltaTime, 0, 0.066f);

        if (t > 0)
        {
            while (tempT < t)
            {
                tempT += animationIncrement;

                if (myTrail.time > 0)
                {
                    myTrail.Itterate(Time.time - t + tempT);
                }
                else
                {
                    myTrail.ClearTrail();
                }
            }

            tempT -= t;

            if (myTrail.time > 0)
            {
                myTrail.UpdateTrail(Time.time, t);
            }
        }
    }
}

挂载在小鸟身上

拖尾排序问题

如果你跟我一样,背景和小鸟使用了不同的排序,那么大概率你的拖尾会被遮挡,可以添加sort group组件修改拖尾的排序

效果

修改拖尾高度和存活时间

效果

待机时无拖尾

我们要实现待机时无拖尾,需要更精确的控制拖尾的出现和消失,修改 TestMyTrail.cs 代码为如下,在小鸟发射时调用heroAttack显示拖尾

void Start()
{
    // 默认没有拖尾效果
    myTrail.SetTime(0.0f, 0.0f, 1.0f);
}

//显示拖尾
public  void heroAttack()
{
     //设置拖尾时长
    myTrail.SetTime( 2.0f,  0.0f,  1.0f);
     //开始进行拖尾
    myTrail.StartTrail( 0.5f,  0.4f);
}

//隐藏拖尾
 public  void heroIdle()
{
     //清除拖尾
    myTrail.ClearTrail();
}

//。。。

效果

参考

https://blog.csdn.net/akof1314/article/details/37603559

https://blog.csdn.net/qq_15020543/article/details/82811070

目录
相关文章
|
4月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
193 6
|
4月前
|
传感器 开发工具 vr&ar
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
|
3月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
246 0
|
6月前
|
数据可视化 大数据 API
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
204 0
|
6月前
|
自然语言处理 搜索推荐 API
【推荐100个unity插件之21】unity实现多语言切换功能——Localization插件的使用
【推荐100个unity插件之21】unity实现多语言切换功能——Localization插件的使用
198 0
|
6月前
|
JSON 开发框架 API
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
494 0
|
6月前
|
数据可视化 C# 图形学
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
169 0
|
3月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
122 4
|
4月前
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
207 5
|
3月前
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
143 3