從憤怒的小鳥來看Unity武器拖尾的特效優化

目錄

前言

素材下載

介紹

官方文檔

不添加拖尾的效果

添加拖尾

代碼控制拖尾生成

拖尾排序問題

效果

修改拖尾高度和存活時間

效果

待機時無拖尾

效果

參考


前言

在游戲開發過程中,我們經常需要為武器添加拖尾特效,效果如下所示

image

Unity 自帶的拖尾組件雖然能滿足基本需求,但在使用中存在明顯局限性:當目標僅進行移動或轉彎時表現尚可,一旦物體本身發生旋轉,它仍會機械地跟隨 transform.position 更新。為此,我們推薦使用 Pocket RPG Weapon Trails 這款武器拖尾特效插件。該插件的優勢在于通過每幀計算 Mesh Renderer 數據,使特效能夠精確貼合武器運動軌跡。

素材下載

Asset Store地址: The Best Assets for Game Making | Unity Asset Store

介紹

官方文檔

image

主要變量說明:

  • desiredTime:控制拖尾效果的期望持續時間(與time參數直接相關)
  • time:記錄拖尾從出現到完全消失的實際持續時間(會不斷向desiredTime趨近)
  • timeTransitionSpeed:與time成正比,與fadeTime(漸隱時長)成反比

應用示例: 3D場景中有眾多應用案例,這里不再展開;2D場景可參考《憤怒的小鳥》等游戲的具體實現。

不添加拖尾的效果

image

添加拖尾

為小鳥添加一個名為"Trail"的子對象,并執行以下配置:

  1. 附加WeaponTrail.cs腳本
  2. 添加Mesh Renderer組件
  3. 使用Pocket RPG Trails資源包中的"WeaponTrail"材質
  4. 按圖示完成參數設置

image

代碼控制拖尾生成

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

掛載在小鳥身上

image

拖尾排序問題

如果你和我一樣,背景和小鳥使用了不同的排序方式,拖尾效果很可能被遮擋。此時可以通過添加 sort group 組件來調整拖尾的渲染順序。

image

效果

image

修改拖尾高度和存活時間

image

效果

image

待機時無拖尾

我們需要確保在待機狀態下不出現拖尾效果。為此,需更精確地控制拖尾的顯示與隱藏。請修改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();
}

效果

image

參考

Unity3D武器拖尾效果-CSDN博客

Unity插件篇:Pocket RPG Weapon Trails(武器拖尾特效)部分解讀以及基本用法_unity刀光拖尾插件-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92324.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92324.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92324.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Web開發模式 前端渲染 后端渲染 身份認證

Web 開發模式 # 目前主流的Web 開發模式 兩種 一、基于 服務器端渲染 的傳統 Web開發模式 二、基于 前后端分離 的新型 Web開發模式# 服務端渲染的優缺點# 優點&#xff1a;1. 前端耗時少因為服務端負責動態生成 HTML內容&#xff0c;瀏覽器&#xff08;包括手…

C++ WonderTrader 源碼分析之浮點數處理

介紹 在WonderTrader的文件decimal.h中封裝了一些用于浮點數&#xff08;double&#xff09;處理的工具函數&#xff0c;主要目的是解決浮點數精度誤差帶來的比較問題&#xff0c;以及進行一些常用運算&#xff08;四舍五入、比較、取模等&#xff09;。下面我們逐行詳細解釋每…

指針——練習

sizeof和strlensizeofsizeof是用來計算變量所占內存空間大小的&#xff0c;單位是字節&#xff0c;如果操作數是類型&#xff0c;計算的是使用類型創建的變量所占內存空間的大小。sizeof只關注占用內存空間的大小&#xff0c;不在乎內存中存放什么數據。我們來看一下這個代碼&a…

華為云 Flexus 部署 coze-studio

華為云 Flexus 部署 coze-studio 一、前置 主機和程序&#xff1a;云主機&#xff08;Flexus L ubuntu&#xff09; coze-studio 部署方式&#xff1a;docker&#xff08;提前裝好的&#xff09; 字節跳動開源AI智能體開發平臺Coze&#xff0c;具備極低的硬件門檻——2核CPU…

Linux系統編程Day7 -- 基于Linux系統知識的第一個程序

往期內容回顧 自動化構建工具-make/Makefile gcc/g編譯及鏈接 Vim工具的使用 Linux常用工具&#xff08;yum與vim&#xff09; ?????? Linux系統編程Day4-- Shell與權限 編寫第一個Linux程序 今天我們要利用我們所學到的Linux語言來編譯第一個Linux程序&#xff0c;在進行…

安卓264和265編碼器回調編碼數據寫入.265或者.264文件、查看編碼數據是否正確、轉換為Mp4文件、查看Mp4文件信息等方法合集

一、寫入文件 1、變量定義 private FileOutputStream m265FileOutputStream null; private File m265File null; private static final String HEVC_265_FILE_NAME "output.265"; // 或 .265 private static final String AVC_264_FILE_NAME "output.264&qu…

如何打造一支AI時代下的IT團隊,為企業戰略目標快速賦能

執行摘要 在當前AI技術迅猛發展的背景下&#xff0c;中國中小企業正面臨著前所未有的數字化轉型機遇與挑戰。據最新調研顯示&#xff0c;2025年全球AI市場規模將突破5000億美元&#xff0c;而中國AI應用占比已達35%。與此同時&#xff0c;AI領域人才缺口高達1000萬人&#xff0…

機器學習-LinearRegression

1、 關鍵數學知識點&#xff1a; 邊緣概率密度 聯合密度對非關注變量積分&#xff1a;fX(x)∫fX,Y(x,y)dyf_X(x)∫f_{X,Y}(x,y)dyfX?(x)∫fX,Y?(x,y)dy&#xff1b; 條件概率密度 切片 fX∣Y(x∣y)fX,Y(x,y)/fY(y)f_{X|Y}(x|y)f_{X,Y}(x,y)/f_Y(y)fX∣Y?(x∣y)fX,Y?(x,y)…

解決微信小程序中如何把npm構建的模塊與主包分離,構建到分包上面

1、配置分包2、復制packge.json到分包中3、在project.config.json中增加npm配置4、終端執行npm i下載模塊5、構建npm到miniprogram_npm中

自動駕駛中的傳感器技術21——Camera(12)

自動駕駛攝像頭的圖像評測 攝像頭的性能受到環境光照、天氣條件、運動模糊等因素的影響&#xff0c;因此需要通過多方面的評測來確保其在各種場景下的可靠性。 在自動駕駛領域&#xff0c;圖像質量評估不僅關注圖像的清晰度、分辨率等傳統指標&#xff0c;還需要結合目標檢測…

AI+OA原生應用 麥當秀AIPPT

麥當秀也在WAIC期間重新定義AIOA一、什么是“原生AI”&#xff1f;“原生AI”可以理解為&#xff1a;AI系統本身具備完整的辦公能力&#xff0c;不需要依賴傳統辦公軟件&#xff08;如Word、Excel、PPT&#xff09;作為載體。也就是說&#xff0c;用戶可以直接通過AI系統完成文…

K8S 入門操作

之前一直用kubectl這個命令操作&#xff0c;這些都是基于命令來操作K8S kubectl get pods kubectl get nodes kubectl get svc kubectl create deployment... kubectl expose deployment...kubectl 文檔 命令行工具 (kubectl) | Kubernetes 命令參考 Kubectl Reference Doc…

蒙文OCR識別技術難點實現及應用場景剖析

一、蒙文OCR識別核心技術難點1. 文字特性帶來的識別挑戰連寫特性&#xff1a;蒙文字符存在復雜的連寫形式&#xff08;詞首、詞中、詞尾變形&#xff09;方向特異性&#xff1a;傳統蒙文為垂直書寫&#xff08;現代也有橫排&#xff09;&#xff0c;需特殊方向處理字符相似性&a…

通過docker構建一個java鏡像

通過docker構建一個java鏡像 FROM zlyxzq/centos7:v1 VOLUME /tmp WORKDIR /app COPY /target/aa.jar /root/app/aa.jarENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneENV JAVA_HOME /usr/local/java ENV PA…

SpringBoot學習日記 Day5:解鎖企業級開發核心技能

一、前言&#xff1a;從玩具項目到生產系統經過前四天的學習&#xff0c;我們已經能夠開發基礎功能了。但要讓應用真正具備生產價值&#xff0c;還需要掌握數據庫高級操作、事務控制、緩存優化等企業級開發技能。今天就來攻克這些關鍵知識點&#xff01;二、JPA進階&#xff1a…

將英文PDF文件完整地翻譯成中文的4類方式

文章目錄一、在線翻譯服務&#xff08;最快捷&#xff0c;適合臨時查看&#xff09;1.1 代表工具&#xff1a;1.2 操作流程&#xff08;以Google翻譯為例&#xff09;1.3 優點和缺點1.4 適用場景二、專業軟件&#xff08;最佳平衡&#xff0c;兼顧格式與質量&#xff09;2.1 代…

【分享】我國八大沙漠空間矢量范圍

今天小編整理分享的是 我國八大沙漠空間矢量范圍shp。▲ 我國八大沙漠空間矢量范圍概況數據概況我國八大沙漠空間矢量范圍。中國八大沙漠。分別為騰格里沙漠&#xff0c;塔克拉馬干沙漠&#xff0c;巴丹吉林沙漠&#xff0c;庫布奇沙漠&#xff0c;烏蘭布和沙漠&#xff0c;庫…

【音視頻】WebRTC C++ native 編譯

一、搭建環境 我們這里介紹在Windows10VS2019的環境下編譯WebRTC源碼&#xff0c;由于WebRTC源碼在外網上&#xff0c;需要科學的方式下載&#xff0c;不然下載特別慢&#xff0c;建議直接找國內下載好的源碼&#xff0c;這里的源碼是2021年的版本&#xff1a;https://pan.bai…

Selenium在Pyhton應用

目錄 1. selenium的基本原理 2. selenium環境的搭建步驟 3. 元素的定位和操作 4.元素的基本屬性方法 5.瀏覽器的操作方法 6.三種等待 強制等待 顯示等待 隱式等待 7. 鍵盤與鼠標的操作 鼠標懸停用 拖拽操作 8. 下拉框元素定位 9.頁面滾動操作 10. 頁面截圖操作 S…

【Docker】Redis基礎命令在Docker中的使用

文章目錄一 Redis 容器化部署指南1 獲取 Redis 鏡像2 服務啟動2.1 首次啟動新容器2.2 重啟已有容器3 服務驗證4 連接 Redis5 數據持久化方案5.1 使用 Docker 卷5.2 啟用 AOF 持久化6 容器管理6.1 停止容器6.2 刪除容器7 數據清理7.1 清空 Redis 數據7.2 完全移除7.3 刪除數據卷…