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

Unity3D仿星露谷物语开发49之创建云杉树

1、目标

创建一颗既可以生长又可以砍伐的云杉树,这个和之前创建橡树类似。

2、创建云杉树预制体

创建新物体命名为CropTreeBlueSpruce,并且添加Box Collider 2D和Crop组件。

在CropTreeBlueSpruce下创建子物体命名为CropSprite,添加3个组件如下:

在CropSprite下添加子物体命名为Trunk,添加3个组件如下:

在CropSprite下添加子物体命名为Top,添加2个组件如下:

在CropSprite下添加子物体命名为FallingNeedlesSpawnPoint,设置Transform属性:

设置CropTreeBlueSpruce的Crop属性:

将预制体移到Assets -> Prefabs -> Crop下,并且删除Hierarchy下的物体。

3、SO_CropDetailsList添加云杉

修改Crop Details从3到4,配置信息如下:

4、创建云杉树桩预制体

在Assets -> Prefabs -> Crop下,复制CropTreeTrunkCanyonOak预制体后重命名为CropTreeTrunkBlueSpruce。

点击CropTreeTrunkBlueSpruce查看,不需要做任何改变。

点击CropSprite查看,不需要做任何改变。

点击Trunk,修改Sprite信息,其他保持不变。

点击WoodChippingsSpawnPoint查看,保持不变。

5、SO_CropDetailsList添加云杉桩

修改Crop Details从4到5,配置信息如下:

6、创建杉树砍伐落叶特效

在Assets -> Prefabs -> Crop -> Effects下复制DeciduousLeavesFalling重命名为PineConesFalling。只更改如下的值:

7、修改PoolManager对象配置

将Pool个数从3改为4,并且配置Prefab的值。

8、修改VFXManager.cs脚本 

[SerializeField] private GameObject pineConesFallingPrefab = null;

完整的displayHarvestActionEffect函数代码如下:

新增HarvestActionEffect.pipeConesFalling的case。

private void displayHarvestActionEffect(Vector3 effectPosition, HarvestActionEffect harvestActionEffect)
{switch(harvestActionEffect){case HarvestActionEffect.deciduousLeavesFalling:GameObject deciduousLeavesFalling = PoolManager.Instance.ReuseObject(deciduousLeavesFallingPrefab, effectPosition, Quaternion.identity);deciduousLeavesFalling.SetActive(true);StartCoroutine(DisableHarvestActionEffect(deciduousLeavesFalling, twoSeconds));break;case HarvestActionEffect.choppingTreeTrunk:GameObject choppingTreeTrunk = PoolManager.Instance.ReuseObject(choppingTreeTrunkPrefab, effectPosition, Quaternion.identity);choppingTreeTrunk.SetActive(true);StartCoroutine(DisableHarvestActionEffect(choppingTreeTrunk, twoSeconds));break;case HarvestActionEffect.reaping:GameObject reaping = PoolManager.Instance.ReuseObject(reapingPrefab, effectPosition, Quaternion.identity);reaping.SetActive(true); StartCoroutine(DisableHarvestActionEffect(reaping, twoSeconds));break;case HarvestActionEffect.pipeConesFalling:GameObject pineConesFalling = PoolManager.Instance.ReuseObject(pineConesFallingPrefab, effectPosition, Quaternion.identity);pineConesFalling.SetActive(true);StartCoroutine(DisableHarvestActionEffect(pineConesFalling, twoSeconds));break;case HarvestActionEffect.none:break;default:break;}
}

配置VFXManager对象:

运行游戏:

http://www.xdnf.cn/news/627247.html

相关文章:

  • 常见算法题目3 -反转字符串
  • 2025年—ComfyUI_最新插件推荐及使用(实时更新)
  • 保姆式一步一步制作B端左侧菜单栏
  • 游园安排--最长上升子序列+输出序列
  • 力扣:《螺旋矩阵》系列题目
  • Vant4+Vue3+Vite开发搭建教程
  • 【Redis】分布式缓存的一系列问题(持久化,主从集群,哨兵,分片集群)
  • 解决Docker容器内yum: not found、apt: not found、apk: command not found等命令找不到问题
  • 开发者工具箱-鸿蒙颜色转换器开发笔记
  • python打卡训练营打卡记录day35
  • 《算法导论(第4版)》阅读笔记:p127-p133
  • C语言 — 内存函数和数据的存储
  • 【Code Agent Benchmark】论文分享No.15:TAU-Bench
  • Windows下编译Zipios
  • 线性回归原理推导与应用(七):逻辑回归原理与公式推导
  • 解决input框被禁用后无法添加点击事件的几个方案
  • 前端大文件上传性能优化实战:分片上传分析与实战
  • 构建Harbor私有镜像库
  • MySQL--day7--聚合函数
  • 【一对一文件重命名】如何按照Excel表格文件名对应的关系,批量一对一的批量改名,一对一关联改名,如何按照映射关系一对一重命名文件夹
  • Serv00 免费邮局 搭建属于自己的域名邮箱 支持 SMTP / Catch-all
  • 电子电路:为什么导体中的电子数量能够始终保持不变?
  • NSSCTF-[羊城杯 2023]程序猿Quby
  • 【通用技巧】技术文章工业级指南:目标定位、架构设计与持续演进
  • PINN高阶技术综合应用:复杂问题求解与神经算子进阶
  • NV123NV134美光闪存颗粒NV139NV143
  • 52页 @《人工智能生命体 新启点》中國龍 原创连载
  • 详细设计文档怎么写?@附参考原件
  • Spring Boot中如何对密码等敏感信息进行脱敏处理
  • 【一. Java基础:注释、变量与数据类型详解】