当前位置: 首页 > 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)浇水

http://www.lryc.cn/news/573965.html

相关文章:

  • 统计用户本月的连续登录天数
  • 系列一、windows中安装RabbitMQ
  • [论文阅读] 软件工程 + 教学 | 软件工程项目管理课程改革:从传统教学到以学生为中心的混合式学习实践
  • Linux——6.检测磁盘空间、处理数据文件
  • 爬虫入门练习(文字数据的爬取)
  • JavaScript 的 “==” 存在的坑
  • 跨域视角下强化学习重塑大模型推理:GURU框架与多领域推理新突破
  • TypeScript类型定义:Interface与Type的全面对比与使用场景
  • 线程池异步处理
  • 分布式ID生成方式及优缺点详解
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结
  • uni-app项目实战笔记23--解决首次加载额外图片带来的网络消耗问题
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • day03-微服务01
  • 《Nature Commun》(中科院1区, IF17.694): CITE-seq+空间转录组解析SSc免疫异质性
  • MySQL学习(1)——基础库操作
  • 【C++开发】CMake构建工具
  • 系统思考:救火先放火
  • (线性代数最小二乘问题)Normal Equation(正规方程)
  • 【边缘计算】ECA、ECN、ECI
  • 逆向某物 App 登录接口:还原 newSign 算法全流程
  • springboot 提供的可扩展接口
  • Element表格表头合并技巧
  • 30天pytorch从入门到熟练(day1)
  • VS2019调试进入FFmpeg源码
  • Vulkan 学习笔记15—Mipmap 与多重采样
  • 【webSocket】WebSocket全双工通信实战指南
  • 从零开始手写redis(15)实现自己的 HashMap
  • java专题漏洞总结 + 靶场练习
  • 【学习笔记】深入理解Java虚拟机学习笔记——第10章 前端编译与优化