Unity 武器拖尾效果

测试角色的模型包:https://www.assetstore.unity3d.com/en/#!/content/15103

CSDN资源地址:http://download.csdn.net/detail/akof1314/7610385

首先,在Animator窗口,创建休闲idle状态和攻击attack状态,设置它们相应的Motion,设置从idle到attack的动画参数为Attack,类型为Trigger,如下图所示:

Speed属性可以控制当前状态动作的速度。接着,创建个脚本TestMyTrail.cs附加到角色上,脚本代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using UnityEngine;
using System.Collections;

public  class TestMyTrail : MonoBehaviour {

     private Animator animator;

     void Start () {
        animator = GetComponent();
    }

     void OnGUI()
    {
         if (GUI.Button( new Rect( 0,  0,  50,  50),  "攻击"))
        {
            animator.SetTrigger( "Attack");
        }
    }
}

运行,可以看到默认角色是休闲状态,点击按钮是攻击状态,如下图所示:

查看模型,可以看到武器是绑在右手上的,如下图所示:

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

修改TestMyTrail.cs代码为如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using UnityEngine;
using System.Collections;

public  class TestMyTrail : MonoBehaviour {

     public WeaponTrail myTrail;

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

     void Start () 
    {
        animator = GetComponent();
    }

     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);
            }
        }
    }

     void OnGUI()
    {
         if (GUI.Button( new Rect( 0,  0,  50,  50),  "攻击"))
        {
            animator.SetTrigger( "Attack");
        }
    }
}

Trail对象赋给 My Trail属性,如下图所示:

现在运行,可以看到休闲状态时,武器拖尾的若隐若现,如下图所示:

攻击时的效果:

要调整好 Trail对象的位置、旋转等,尽量贴合武器,设置拖尾的高度,尽量与武器同长度,才能产生较好的效果。当攻击结束,武器往回收的时候,也会有拖尾,如下图所示:

如果要去掉这个时候的拖尾,可以采用更精确的控制拖尾的出现。选中攻击动作,切换到" Animations",播放动作,在攻击开始时刻,添加一个事件,如下图所示:

在攻击完毕,也添加一个事件,如下图所示:

点击" Apply"进行应用。修改 TestMyTrail.cs代码为如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
     void Start () 
    {
        animator = GetComponent();
         // 默认没有拖尾效果
        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();
    }

现在运行,就会发现休闲状态时候,不会有拖尾效果,当进行攻击时,拖尾只在相应的时间点进行出现,如下图所示:

武器回收的时候,也不会有拖尾了,如下图所示:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

相信它会给大家带来很多收获:

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

方向,才能在工作和能力提升中甩开同龄人。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity粒子拖尾特效是一种创造自然而流畅感的特效,这种特效的产生依靠着粒子间的连续轨迹和持续性释放。它在游戏中可以制造出许多视觉上的效果,比如制造出快速移动的火球,高速前进的飞船以及射击物体之后的痕迹效果等等。这种特效不仅美观而且非常易于使用,可以通过简单的控制粒子发射器的大小、颜色和持续时间等参数来轻松地定制和创建拖尾特效。 Unity粒子拖尾特效能够通过移动物体、旋转物体、手动发出粒子、射击武器或者任意其他触发机制来进行触发,它的作用是在运动中加入视觉上的轨迹效果,从而让游戏效果更加美观和真实。这种特效主要是通过增加粒子间的连接性,把单独的粒子集合成一个整体,从而创造出质感更强、更加细致的自然运动效果。同时,通过调整参数可以调整拖尾的长度、宽度、曲率和透明度等属性,从而产生出各种不同效果拖尾特效。 综上所述,Unity粒子拖尾特效是一种优秀的特效技术,在游戏开发中可以增添游戏真实感,提高游戏玩家的体验。对于游戏美术设计人员来说,掌握这种技术是必不可少的。 ### 回答2: Unity粒子拖尾特效是一种在游戏或应用程序中使用的可视效果,用于增强游戏场景中运动物体的真实感和视觉效果。 在Unity中,我们可以通过创建粒子系统并为其添加拖尾模块来实现拖尾特效。首先,我们需要在场景中创建一个粒子系统,并设置其初始位置、大小、颜色等属性。然后,我们可以在粒子系统的组件面板中添加一个拖尾模块,并调整它的属性。 拖尾模块有几个重要属性。首先是“持续时间”,它控制拖尾效果持续的时间长度。其次是“宽度曲线”,它定义了拖尾的宽度变化规律,可以使拖尾变宽或变窄。还有“长度曲线”,它控制了拖尾的长度变化规律,可以根据物体的速度或其他变量实现自定义的长度变化。 在拖尾模块中,还可以设置拖尾的颜色、透明度以及混合模式,以实现更多的效果变化。我们可以根据游戏场景和物体的需求来自定义这些属性,以获得最佳的拖尾效果。 值得注意的是,在使用粒子拖尾特效时,我们应该考虑性能问题。一些特效的设置可能会增加游戏的渲染负荷,因此在使用拖尾特效时需要注意控制粒子系统的数量和其他属性,以确保游戏的帧率和性能不受影响。 总而言之,Unity粒子拖尾特效是一种简单而强大的工具,可以为游戏或应用程序增添更加逼真和吸引人的视觉效果。在使用时,我们需要根据需求调整粒子系统和拖尾模块的属性,以创建出最合适的拖尾特效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值