两学一做知识竞赛网站,最流行的网站设计风格,wordpress通知,百度云盘网页登录入口本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1#xff08;附项目源码#xff09; 【制作100个unity游戏之23】实现类似七日杀、森…本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1附项目源码 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏2附项目源码 待续 前言
欢迎来到【制作100个Unity游戏】系列本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中我们将探索如何制作一个类似于七日杀和森林的生存游戏。
生存游戏一直以来都备受玩家们的喜爱它们提供了一个真实而充满挑战的环境让玩家们在艰苦的条件下尽力生存下去。通过本系列的指导您将学会如何创建一个令人惊叹的生存游戏世界包括资源管理、建造基地、狩猎、探索和对抗敌人等核心要素。
我们将从头开始逐步构建游戏的各个方面。您将学习使用Unity的强大工具和功能如场景编辑器、角色控制、AI编程、物理模拟等以及如何优化游戏性能和创建令人印象深刻的图形效果。
请确保您具备一定的Unity开发基础知识这将有助于更好地理解本系列的内容。即使您是初学者也不要担心我们将尽力以简单易懂的方式解释和演示每个步骤。
准备好开始制作一个令人兴奋的生存游戏了吗让我们一起踏上这个创作之旅开发出属于自己的精彩作品吧
本篇内容会比较多我会分几篇来实现感兴趣的可以关注一下以免错过内容更新。
本节主要实现环境的搭建人物的控制物品基本的交互。
环境 做游戏我通常喜欢先绘制好地形环境这样可以让我们的游戏不会显得那么枯燥 素材
这里我用到的素材资源如下你也可以选择使用自己喜欢的素材 https://assetstore.unity.com/packages/3d/environments/landscapes/free-island-collection-104753 https://assetstore.unity.com/packages/3d/vegetation/trees/dream-forest-tree-105297
绘制地形
还不会绘制地形可以查看我之前的文章零基础带你从小白到超神04——地形的绘制和基础使用介绍
这里为了节省时间就直接放出最终效果了 实现人物移动
具体可以看这篇文章 unity最完美的CharacterController 3d角色控制器实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果复制粘贴即用
效果
指示显示物品名称
物品挂载脚本并配置好名字
public class InteractableObject : MonoBehaviour
{public string ItemName; // 物品名称// 获取物品名称的方法public string GetItemName(){return ItemName;}
}比如我们在树预制体上挂载脚本记得添加碰撞体
控制显示物品UI文本
public class SelectionManager : MonoBehaviour
{public GameObject interactionInfoUI; // 交互信息UI对象private TextMeshProUGUI interactionText; // 交互文本组件public float maxDistance 3f; // 最大检测距离public LayerMask layerMask; // 检测层级private void Start(){interactionText interactionInfoUI.GetComponentTextMeshProUGUI(); // 获取交互文本组件}void Update(){Ray ray Camera.main.ScreenPointToRay(Input.mousePosition); // 从鼠标位置创建射线RaycastHit hit;if (Physics.Raycast(ray, out hit, maxDistance, layerMask)) // 检测射线是否击中物体{var selectionTransform hit.transform;if (selectionTransform.GetComponentInteractableObject()){interactionText.text selectionTransform.GetComponentInteractableObject().GetItemName();interactionInfoUI.SetActive(true); // 显示交互信息UI}}else{interactionInfoUI.SetActive(false); // 鼠标未点击任何物体隐藏交互信息UI}}
}挂载脚本配置参数, 记得修改所有的交互物体层为Interaction
效果
源码
源码不出意外的话我会放在最后一节
完结
赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注以便我第一时间收到反馈你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦
好了我是向宇https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者出于兴趣爱好最近开始自学unity闲暇之余边学习边记录分享站在巨人的肩膀上通过学习前辈们的经验总是会给我很多帮助和启发php是工作unity是生活如果你遇到任何问题也欢迎你评论私信找我 虽然有些问题我也不一定会但是我会查阅各方资料争取给出最好的建议希望可以帮助更多想学编程的人共勉~