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

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏15(附项目源码)

本节最终效果演示

在这里插入图片描述

文章目录

  • 本节最终效果演示
  • 系列目录
  • 前言
  • 实现树倒下的效果
  • 拾取圆木
  • 砍树消耗卡路里
  • 斧头手臂穿模问题处理
  • 源码
  • 完结

系列目录

前言

欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将探索如何制作一个类似于七日杀和森林的生存游戏。

本篇内容会比较多,我会分几篇来实现,感兴趣的可以关注一下,以免错过内容更新。

本节主要实现砍树功能优化,拾取原木,消耗卡路里,工具穿模问题处理。

实现树倒下的效果

这里分享另一种实现砍树的效果,如果之前分享的效果不是你想要的,可以选择使用这种办法,不然可以忽略

可以修改树木的刚体,锁住y轴的旋转,并将碰撞体改为胶囊体,记得刚体阻力不要加太大,会影响树倒下的速度
在这里插入图片描述

将动画控制组件放在子物体内
在这里插入图片描述

其他和前面一致,稍微修改ChoppableTree代码即可

public class ChoppableTree : MonoBehaviour
{public float treeMaxHealth; // 树木最大生命值public float treeHealth; // 树木当前生命值private Animator animator;public float caloriesSpentChoppingWood = 20;//消耗卡路里private void Start(){treeHealth = treeMaxHealth;animator = transform.GetComponentInChildren<Animator>();}private void OnTriggerEnter(Collider other){if (other.CompareTag("AxeHead")) TakeDamage(1);}void TakeDamage(int damage){animator.SetTrigger("shake"); // 播放摇晃动画treeHealth -= damage; // 生命值减少PlayerState.Instance.currentCalories -= caloriesSpentChoppingWood;//消耗卡路里if (treeHealth <= 0){transform.GetComponent<Rigidbody>().isKinematic = false;//树倒下StartCoroutine(TreeIsDead());// 树木死亡}}// 树木死亡的方法IEnumerator TreeIsDead(){yield return new WaitForSeconds(5.0f);Destroy(transform.gameObject); // 销毁树木的父对象// 创建砍倒后的树木Instantiate(Resources.Load<GameObject>("生成圆木"), new Vector3(transform.position.x, transform.position.y, transform.position.z), transform.rotation);}
}

效果
在这里插入图片描述

拾取圆木

圆木挂载脚本和绘制icon,物品介绍
在这里插入图片描述
修改图层
在这里插入图片描述

效果
在这里插入图片描述

砍树消耗卡路里

修改ChoppableTree

public float caloriesSpentChoppingWood = 20;//消耗卡路里void TakeDamage(int damage)
{PlayerState.Instance.currentCalories -= caloriesSpentChoppingWood;//消耗卡路里//。。。
}

效果
在这里插入图片描述

斧头手臂穿模问题处理

具体实现可以看我这一篇:【unity小技巧】两种办法解决FPS游戏枪或者人物穿墙穿模问题(2024/1/11补充)

这里我们直接简单选择多加个相机单独渲染我们手臂
在这里插入图片描述

源码

源码不出意外的话我会放在最后一节

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~

在这里插入图片描述

相关文章:

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏15(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言实现树倒下的效果拾取圆木砍树消耗卡路里斧头手臂穿模问题处理源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&…...

python巧用定理判断素数

目录 判断一个数n是否是素数 求一个数的素因数个数 求大于等于指定数的最小素数 在数论中有三个非常重要的关于素数的定理 1、任何数都可以表示成若干个素数的乘积 2、任意数的素因子一个大于根号n的自然数&#xff0c;另一个与其对应的因子则必小于根号n。 3、除了2和3以…...

2023年总结

人们总说时间会改变一切&#xff0c;但事实上你得自己来。 今年开始给自己的时间读书、工作、生活都加上一个2.0的release版本号&#xff0c;相比过去的一年还是有很多进步的。 就跟git commit一样&#xff0c;一步一步提交优化&#xff0c;年底了发个版本。用李笑来的话说&am…...

Git中为常用指令配置别名

目录 1 前言 2 具体操作 2.1 创建.bashrc文件 2.2 添加指令 2.3 使其生效 2.4 测试 1 前言 在Git中有一些常用指令比较长&#xff0c;当我们直接输入&#xff0c;不仅费时费力&#xff0c;还容易出错。这时候&#xff0c;如果能给其取个简短的别名&#xff0c;那么事情就…...

STM32内部Flash

目录 一、内部Flash简介 二、内部Flash构成 1. 主存储器 2. 系统存储区 3. 选项字节 三、内部Flash写入过程 1. 解锁 2. 页擦除 3. 写入数据 四、工程空间分布 某工程的ROM存储器分布映像&#xff1a; 1. 程序ROM的加载与执行空间 2. ROM空间分布表 一、内部Flash…...

html5 audio video

DOMException: play() failed because the user didn‘t interact with the document first.-CSDN博客 不可用&#xff1a; 可用&#xff1a; Google Chrome Close AutoUpdate-CSDN博客...

LoveWall v2.0Pro社区型校园表白墙源码

校园表白墙&#xff0c;一个接近于社区类型的表白墙&#xff0c;LoveWall。 源码特色&#xff1b; 点赞&#xff0c; 发评论&#xff0c; 发弹幕&#xff0c; 多校区&#xff0c; 分享页&#xff0c; 涉及违禁物等名词进行检测&#xff01; 安装教程: 环境要求&#xff1b;…...

Flink cdc3.0动态变更表结构——源码解析

文章目录 前言源码解析1. 接收schema变更事件2. 发起schema变更请求3. schema变更请求具体处理4. 广播刷新事件并阻塞5. 处理FlushEvent6. 修改sink端schema 结尾 前言 上一篇Flink cdc3.0同步实例 介绍了最新的一些功能和问题&#xff0c;本篇来看下新功能之一的动态变更表结…...

WWW 2024 | 时间序列(Time Series)和时空数据(Spatial-Temporal)论文总结

WWW 2024已经放榜&#xff0c;本次会议共提交了2008篇文章&#xff0c;research tracks共录用约400多篇论文&#xff0c;录用率为20.2%。本次会议将于2024年5月13日-17日在新加坡举办。 本文总结了WWW 2024有关时间序列&#xff08;Time Series&#xff09;和时空数据&#xf…...

代码随想录算法——数组

目录 1、二分查找法 2、移除元素 3、有序数组的平方 4、长度最小的子数组 5、螺旋矩阵II 1、二分查找法 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在…...

Linux第45步_通过搭建“DNS服务器”学习图形化配置工具

学习的意义&#xff1a;通过搭建“DNS服务器”&#xff0c;来学习“图形化配置工具”。“DNS服务器”&#xff0c;我们用不到&#xff0c;但为后期移植linux系统服务&#xff0c;因为在移植系统时&#xff0c;需要用到这个“图形化配置工具”。 1、“menuconfig图形化配置工具…...

【Linux取经路】探寻shell的实现原理

文章目录 一、打印命令行提示符二、读取键盘输入的指令三、指令切割四、普通命令的执行五、内建指令执行5.1 cd指令5.2 export指令5.3 echo指令 六、结语 一、打印命令行提示符 const char* getusername() // 获取用户名 {return getenv("USER"); }const char* geth…...

【MATLAB】使用随机森林在回归预测任务中进行特征选择(深度学习的数据集处理)

1.随机森林在神经网络的应用 当使用随机森林进行特征选择时&#xff0c;算法能够为每个特征提供一个重要性得分&#xff0c;从而帮助识别对目标变量预测最具影响力的特征。这有助于简化模型并提高其泛化能力&#xff0c;减少过拟合的风险&#xff0c;并且可以加快模型训练和推理…...

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(六)NodeJS入门——http模块

047_http模块_获取请求行和请求头 hello&#xff0c;大家好&#xff0c;那第二节我们来介绍一下如何在这个服务当中来提取 HTT 请求报文的相关内容。首先先说一下关于报文的提取的方法&#xff0c;我在这个文档当中都已经记录好了&#xff0c;方便大家后续做一个快速的查阅。 …...

【数据结构与算法】(5)基础数据结构之队列 链表实现、环形数组实现详细代码示例讲解

目录 2.4 队列1) 概述2) 链表实现3) 环形数组实现 2.4 队列 1) 概述 计算机科学中&#xff0c;queue 是以顺序的方式维护的一组数据集合&#xff0c;在一端添加数据&#xff0c;从另一端移除数据。习惯来说&#xff0c;添加的一端称为尾&#xff0c;移除的一端称为头&#xf…...

(注解配置AOP)学习Spring的第十七天

基于注解配置的AOP 来看注解式开发 : 先把目标与通知放到Spring里管理 : Service("userService") public class UserServiceImpl implements UserService {Overridepublic void show1() {System.out.println("show1......");}Overridepublic void show2…...

[C++] opencv + qt 创建带滚动条的图像显示窗口代替imshow

在OpenCV中&#xff0c;imshow函数默认情况下是不支持滚动条的。如果想要显示滚动条&#xff0c;可以考虑使用其他库或方法来进行实现。 一种方法是使用Qt库&#xff0c;使用该库可以创建一个带有滚动条的窗口&#xff0c;并在其中显示图像。具体步骤如下&#xff1a; 1&…...

C#用Array类的Reverse方法反转数组中元素

目录 一、Array.Reverse 方法 1.重载 2.Reverse(Array, Int32, Int32) 3. Reverse(Array) 4.Reverse(T[]) 5. Reverse(T[], Int32, Int32) 二、实例 1.Array.Reverse 方法4种重载方法综合实例 2.Reverse(Array)方法的实例 一、Array.Reverse 方法 反转一维 Array 或部…...

iOS AlDente 1.0自动防过充, 拯救电池健康度

经常玩iOS的朋友可能遇到过长时间过充导致的电池鼓包及健康度下降问题。MacOS上同样会出现该问题&#xff0c;笔者用了4年的MBP上周刚拿去修了&#xff0c;就是因为长期不拔电源的充电&#xff0c;开始还是电量一半的时候不接电源会黑屏无法开机&#xff0c;最后连着电源都无法…...

春晚刘谦魔术——约瑟夫环

昨晚&#xff0c;刘谦在春晚上表演了一个魔术&#xff0c;通过对四张撕成两半的纸牌连续操作&#xff0c;最终实现了纸牌的配对。 这个魔术虽然原理不是很难&#xff0c;但是通过刘谦精湛的表演还是让这个魔术产生了不错的效果&#xff08;虽然我感觉小尼的效果更不错&#xff…...

用Neural Renderer和PyTorch搞定3D车辆模型渲染:从.obj文件到Carla数据集实战

3D车辆模型渲染实战&#xff1a;Neural Renderer与Carla数据集深度整合指南 在自动驾驶和计算机视觉领域&#xff0c;逼真的3D车辆模型渲染技术正成为算法开发和测试的关键环节。传统渲染方法往往难以平衡效率与真实感&#xff0c;而基于神经网络的渲染技术为解决这一难题提供了…...

SLAM Toolbox:从零开始掌握机器人自主定位与建图技术

SLAM Toolbox&#xff1a;从零开始掌握机器人自主定位与建图技术 【免费下载链接】slam_toolbox Slam Toolbox for lifelong mapping and localization in potentially massive maps with ROS 项目地址: https://gitcode.com/gh_mirrors/sl/slam_toolbox 在机器人技术飞…...

团队协作中的Git分支管理:为什么我们最终放弃了Rebase?

团队协作中的Git分支管理&#xff1a;为什么我们最终放弃了Rebase&#xff1f; 当我们的技术团队从5人扩展到20人时&#xff0c;Git仓库的提交历史突然变成了需要考古学家破译的楔形文字。最初被Rebase的"整洁线性历史"吸引的我们&#xff0c;在经历三个月的实践后&a…...

Windows用户福音:WSL2+Docker快速部署Coze Studio开源版(附常见错误解决方案)

Windows平台高效部署Coze Studio开源版的完整指南 对于Windows开发者而言&#xff0c;在本地环境搭建Coze Studio开源版可能面临诸多挑战。本文将提供一套经过验证的完整解决方案&#xff0c;从WSL2配置到Docker优化&#xff0c;帮助您避开常见陷阱&#xff0c;快速实现Coze St…...

PFC 2D二维直剪代码解析与源文件分享

PFC 2D 二维直剪&#xff0c;代码逐行解释&#xff0c;提供源文件。 。 嘿&#xff0c;各位岩土工程或者离散元爱好者们&#xff01;今天咱来唠唠PFC 2D里二维直剪的事儿&#xff0c;顺便把代码给大家扒一扒&#xff0c;逐行解释清楚&#xff0c;最后源文件也双手奉上&#xff…...

别再只盯着日志了!利用RDP的.bmc缓存文件做Windows终端服务器取证(附Python工具链)

挖掘RDP客户端缓存&#xff1a;被忽视的Windows终端会话可视化取证新维度 当服务器日志被刻意删除或篡改时&#xff0c;安全人员往往陷入取证僵局。但很少有人意识到&#xff0c;每台连接过远程桌面的Windows电脑里&#xff0c;都藏着一种特殊的"视觉日志"——RDP位图…...

Ring-1T-FP8开源:万亿参数AI推理新突破

Ring-1T-FP8开源&#xff1a;万亿参数AI推理新突破 【免费下载链接】Ring-1T-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ring-1T-FP8 导语&#xff1a;近日&#xff0c;开源社区迎来重大突破——万亿参数级大语言模型Ring-1T-FP8正式开源&#xff…...

从学习到实战:用快马ai生成企业级java博客项目,打通知识应用最后一公里

今天想和大家分享一个特别实用的Java学习实战经验——如何用InsCode(快马)平台快速搭建一个企业级Java博客系统。这个项目完美覆盖了Java学习路线中的核心知识点&#xff0c;从基础框架到生产级功能一应俱全&#xff0c;特别适合想要通过实战巩固技能的朋友。 项目整体设计思路…...

嵌入式开发中PlantUML图表的工程化应用

嵌入式开发中PlantUML图表的工程化应用指南1. 嵌入式文档工具概述在嵌入式系统开发过程中&#xff0c;系统架构图和设计文档是工程师沟通需求、梳理逻辑的核心工具。传统拖拽式绘图工具存在效率低下、维护困难等问题&#xff0c;而基于代码生成图表的PlantUML技术为嵌入式开发文…...

Cursor Pro功能优化工具:提升AI编程体验的完整指南

Cursor Pro功能优化工具&#xff1a;提升AI编程体验的完整指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial …...