本篇最终效果演示
文章目录
- 本篇最终效果演示
- 系列目录
- 前言
- 环境
- 素材
- 绘制地形
- 实现人物移动
- 指示显示物品名称
- 源码
- 完结
系列目录
【制作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.GetComponent<TextMeshProUGUI>(); // 获取交互文本组件
}
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.GetComponent<InteractableObject>())
{
interactionText.text = selectionTransform.GetComponent<InteractableObject>().GetItemName();
interactionInfoUI.SetActive(true); // 显示交互信息UI
}
}
else
{
interactionInfoUI.SetActive(false); // 鼠标未点击任何物体,隐藏交互信息UI
}
}
}
挂载脚本配置参数, 记得修改所有的交互物体层为Interaction
效果
源码
源码不出意外的话我会放在最后一节
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~