Unity2D无限地图的实现(简单好抄)
创作时间:
作者:
@小白创作中心
Unity2D无限地图的实现(简单好抄)
引用
CSDN
1.
https://blog.csdn.net/2301_76156790/article/details/144867312
本文将详细介绍如何在Unity2D游戏中实现无限地图的功能。通过创建一个10*10的2D游戏对象作为基础地图,并结合碰撞体和触发器的使用,实现玩家在上下左右移动时自动进行地图拼接的效果。
实现思路
- 第一步: 创建一个10*10的2D游戏对象当做地图
- 第二步创建一个空对象并在里面创建8个小的2D对象并调整位置
位置要和之前创建的地图的边张一致(不然不能做到无缝拼接)
- 第三步给地图添加碰撞体,给点位添加碰撞体,刚体,并设置为触发器
- 第4步创建一个玩家并给地图添加Map标签
同样给玩家添加刚体和碰撞体组件,同样重力质量设为0,设置为触发器
给地图添加标签
- 第五步编写玩家脚本 并加到玩家身上
using UnityEngine;
public class PlayercontMap : MonoBehaviour
{
public GameObject CreatPointcont;
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "Map")
{
CreatPointcont.transform.position = other.transform.position;
//遍历CreatPointcont所有子对象并显示
for (int i = 0; i < CreatPointcont.transform.childCount; i++)
{
CreatPointcont.transform.GetChild(i).gameObject.SetActive(true);
}
}
}
}
将脚本附加到玩家身上并且将刚刚创建的管理点位的空对象拖到对应位置
- 第六步编写地图生成的脚本Creatpoint
先将地图拖到文件夹中做成预制体
using UnityEngine;
public class Creatpoint : MonoBehaviour
{
public GameObject Map;
private bool isCreate = true;
private void OnEnable()
{
isCreate = true;//初始创建地图为true
Invoke("Creat", 0.1f);
}
//执行创建地图
void Creat()
{
if (isCreate)
{
GameObject mapobj = Instantiate(Map, transform.position, Quaternion.identity);
gameObject.SetActive(false);
}
else
{
gameObject.SetActive(false);
}
}
//判断当前位置是否存在地图
private void OnTriggerStay2D(Collider2D collision)
{
if (collision.gameObject.tag == "Map")
{
isCreate = false;
}
}
}
将脚本附加到所有的点位上并将地图预制体拖到这里
- 最后一步将点位设置为非激活状态
运行游戏拖动Player就会发现地图自动创建成功了,为了避免地图过多你需要自己管理地图的数量,比如玩家离开过远后删除一些地图。
如果你有更好的生成无限地图的方式欢迎评论区讨论哦。
热门推荐
如何在融资过程中做出合理决策?这些关键因素需全面考量
Neuron丨雌二醇双重调控:既镇痛又抑制多巴胺成瘾通路
现代软件开发中关键的高效消息传递平台
东莞光明眼科医院:听说近视的人,老了不会老花?
大健康产业创新论坛:设计、技术与政策的协同进化
了解皮质醇——身体内的“压力激素”
死锁:它是什么,如何检测、处理和预防-架构快速进阶教程
2025湖南高校大更新:湖南大学第2,吉首大学第11,怀化学院第23
从不确定性中获得胜算
银行如何保障金融信息服务的准确性?
20种富含维生素A的食物盘点,赶紧保存收藏!
如何使用CMD命令恢复系统更新?
乌克兰为什么脱离苏联
破局立新天地阔——贵州以"三个大抓"打造经济新增长极
产后抑郁症怎么治
产后抑郁症的十种表现及其治疗方法
仓库管理监控保存多久
一文研究透RPA(机器人流程自动化)!
玻璃罐、陶瓷罐、铁罐,哪个存白茶更靠谱?优缺点一次性说清楚
玻璃与陶瓷杯大解析:优缺点一览,挑选合适材质打造生活好帮手
抗菌药物多粘菌素B、E应该选用哪个?浅谈两者差别
“近岸”是福还是祸?墨西哥2024年经济回顾
什么是技术性熊市,成因、特征与应对策略
项目管理中的编号怎么编
脾胃阴虚消化不良吃什么药好
能证明劳动关系的直接证据有哪些
为什么晨跑后晚上特别累?原因及应对方法全解析
什么是目标价?如何确定合理的目标价?
乐福鞋的风格及其由来
双链 DNA 抗体与自身免疫性疾病的关联