当前位置: 首页 > news >正文

Unity3D仿星露谷物语开发69之动作声音

1、目标

Player动作时产生的声音,比如砍倒树木、砸石头。

2、修复NPC快速行进的bug(与本节无关)

修改NPCMovement.cs脚本的MoveToGridPositionRoutine方法。

确保npcCalculatedSpeed的速度不少于最慢速度。

原代码:

修改后的代码:

3、修改动作声音相关的代码及对象

(1)修改CropDetails.cs脚本

添加一行代码:

(2)修改so_CropDetailsList的实例

位于:Assets/Scriptable Object Assets/Crop/so_CropDetailsList.asset

所有的配置如下:

序号Item CodeHarvest Sound
010006Effect Pluck
110000Effect Tree Falling
210010Effect Wood Splinters
310009Effect Tree Falling
410011Effect Wood Splinters
510014Effect Stone Shatter
610016Effect Stone Shatter

(3)修改Crop.cs脚本

修改HarvestCrop函数添加如下代码:

完整代码如下:

 private void HarvestCrop(bool isUsingToolRight, bool isUsingToolUp, CropDetails cropDetails, GridPropertyDetails gridPropertyDetails, Animator animator){// Is there a harvested animationif(cropDetails.isHarvestedAnimation && animator != null){// if harvest sprite then add to sprite rendererif(cropDetails.harvestedSprite != null){if(cropHarvestedSpriteRenderer != null){cropHarvestedSpriteRenderer.sprite = cropDetails.harvestedSprite;  // 一张图片}}if(isUsingToolRight || isUsingToolUp){animator.SetTrigger("harvestright");}else{animator.SetTrigger("harvestleft");}}// Is there a harvested soundif(cropDetails.harvestSound != SoundName.none){AudioManager.Instance.PlaySound(cropDetails.harvestSound);}// Delete crop from grid propertiesgridPropertyDetails.seedItemCode = -1;gridPropertyDetails.growthDays = -1;gridPropertyDetails.daysSinceLastHarvest = -1;gridPropertyDetails.daysSinceWatered = -1;// Should the crop be hidden before the harvested animationif (cropDetails.hideCropBeforeHarvestedAnimation){GetComponentInChildren<SpriteRenderer>().enabled = false;}// Should box colliders be disabled before harvestif (cropDetails.disableCropCollidersBeforeHarvestedAnimation){// Disable any box collidersCollider2D[] collider2Ds = GetComponentsInChildren<Collider2D>();foreach(Collider2D collider2D in collider2Ds){collider2D.enabled = false;}}GridPropertiesManager.Instance.SetGridPropertyDetails(gridPropertyDetails.gridX, gridPropertyDetails.gridY, gridPropertyDetails);// Is there a harvested animation - Destory this crop game object after animation completedif(cropDetails.isHarvestedAnimation && animator != null){StartCoroutine(ProcessHarvestedActionsAfterAnimation(cropDetails, gridPropertyDetails, animator));}else{HarvestActions(cropDetails, gridPropertyDetails);}}

(4)修改ItemNudge.cs脚本

修改OnTriggerEnter2D和OnTriggerExit2D函数添加如下内容:

确保Player的Tag是"Player"。

(5)修改ItemPickup.cs脚本

修改OnTriggerEnter2D函数添加如下内容:

(6)修改Player.cs脚本

修改PlantSeedAtCursor函数添加如下内容:

修改HoeGroundAtCursor函数添加如下代码:

修改WaterGroundAtCursor函数添加如下代码:

修改ChopInPlayerDirection函数添加如下代码:

修改CollectInPlayerDirection函数添加如下代码:

修改BreakInPlayerDirection函数添加如下代码:

修改UseToolInPlayerDirection函数添加如下代码:

运行游戏

如下情况会有声音:

1)收集道具

2)穿过草丛

3)用镰刀割草

4)用稿子敲击石头

5)挖地

6)播散种子

7)砍树

8)用篮子收集萝卜

9)浇水

相关文章:

  • Go 循环依赖的依赖注入解决方案详解
  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】
  • 等等等等等等
  • Python 数据分析与可视化 Day 4 - Pandas 数据筛选与排序操作
  • 1928: 日期差值 codeup
  • I/O 多路复用
  • STM32 CAN位同步、错误处理
  • 数据赋能(308)——合作共享——数据交流
  • 小白的进阶之路系列之十八----人工智能从初步到精通pytorch综合运用的讲解第十一部分
  • 电池模块仿真 - 线性时不变降阶模型
  • 《情感反诈模拟器》2025学习版
  • Linux系统基本操作指令
  • Python-break、continue与else语句
  • 编程语言分类大全:从系统到AI开发
  • AI 辅助生成 Mermaid 流程图
  • Ubuntu20 搭建 Java、Redis、Nginx
  • 双向长短期记忆网络(BiLSTM)
  • Typecho handsome访客统计插件最新版VistorLoggerPro
  • 让宿主机能访问主机代理!
  • Vue.js数据代理与事件处理全解析:从原理到实践
  • 网站建设做网站/保定关键词优化软件
  • 山东能源集团 网站建设/营销软文范文200字
  • 外贸网站 球衣/目前搜索引擎排名
  • 做网站视频用哪个视频编辑软件/热狗网站关键词优化
  • 网站备案承诺书填写/百度下载安装2022最新版
  • 淘宝做任务赚钱网站有哪些/b2b免费发布信息平台