前言
接上一个文章,本次教程需要在上个时间系统的基础上进行实现。
同样,因写了很多遍教程,这里只列出关键地方,具体的教程请去b站搜索我的2d游戏开发-unity实现
系列的视频。
实现说明
在时间系统实现后,本次文章实现当时间在不同季节的时候显示不同的地图
前提条件
怎么制作该地图不多赘述,有兴趣请搜索b站我的视频教程
具体逻辑
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class mapControllByPrefabs : MonoBehaviour
{
// 春季地图预制体
public GameObject springMap;
// 夏季地图预制体
public GameObject summerMap;
// 秋季
public GameObject fallMap;
// 冬季
public GameObject winterMap;
// 获取时间组件
public GameObject timeSystem;
//
private GameObject isSpring;
//
private GameObject isSummer;
//
private GameObject isFall;
//
private GameObject isWinter;
private void Start()
{
}
// Update is called once per frame
void Update()
{
ChangeMap();
}
// 根据不同的季节切换地图
void ChangeMap() {
TimeSystemContoller timeSystemContoller = timeSystem.GetComponent<TimeSystemContoller>();
// 获取到预制体,然后才能够使用代码去加载预制体到场景
springMap = Resources.Load<GameObject>("Prefabs/map/spring");
summerMap = Resources.Load<GameObject>("Prefabs/map/summer");
fallMap = Resources.Load<GameObject>("Prefabs/map/fall");
winterMap = Resources.Load<GameObject>("Prefabs/map/winter");
// 获取场景有没有加载预制体到场景里
isSpring = GameObject.FindGameObjectWithTag("springMap");
isSummer = GameObject.FindGameObjectWithTag("summerMap");
isFall = GameObject.FindGameObjectWithTag("fallMap");
isWinter = GameObject.FindGameObjectWithTag("winterMap");
// 春季
if (timeSystemContoller.seasonTime == 1) {
// 销毁冬季地图
if (isWinter) {
Destroy(isWinter);
}
// 判断说预制体有没有加载到地图
if (!isSpring) {
// 如果不存在
Instantiate(springMap);
}
}
// 夏季
if (timeSystemContoller.seasonTime == 2) {
// 夏季销毁的是春季的地图
if (isSpring) {
Destroy(isSpring);
}
if (!isSummer)
{
Instantiate(summerMap);
}
}
// 秋季
if (timeSystemContoller.seasonTime == 3)
{
//销毁夏季的地图
if (isSummer)
{
Destroy(isSummer);
}
// 创建秋季地图
if (!isFall)
{
Instantiate(fallMap);
}
}
// 冬季
if (timeSystemContoller.seasonTime == 4)
{
//销毁秋季的地图
if (isFall)
{
Destroy(isFall);
}
// 创建冬季地图
if (!isWinter)
{
Instantiate(winterMap);
}
}
}
}
结语
同样,我写这个的目的只是为了备注以下,防止遗漏;所以详细的教学并没有写出来,如果有需要,搜索我出的b站教程就可以
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136679.html