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

『功能项目』项目优化 - 框架加载资源【41】

我们打开上一篇40播放动画时禁止点击移动的项目,

本章要做的事情是搭建一个资源加载框架,让UI界面,人物模型以及场景都存放在资源文件夹中在运行时加载出来

首先在资源商店加载资源

将怪物模型放置场景中

将普通管线模型切换成URP

重命名为Boss01放在资源文件夹里

新建Boss01对象的动画控制器

进行设置

拖拽新建动画控制器

将场景资源放进资源文件夹中后在场景中隐藏

将场景中的界面Canvas放进资源文件夹中后隐藏

接着把以前挂载在Land场景中的文件夹挂载的LoadResourcesRun.cs脚本取消挂载

新建脚本:

编写脚本:

using UnityEngine;
public class GameStart : SingletonMono<GameStart>{
    protected override void Awake(){
        EnterGame();
    }
    public void EnterGame() {
        EnterFightScene();
    }
    public void EnterFightScene() {
        GameObject mapPrefab = Resources.Load<GameObject>("Prefabs/Maps/Land");
        GameObject map = Instantiate(mapPrefab);
        map.AddComponent<GameManager>().InitGame();

        UIManager.Instance.ShowUIView("Canvas");
    }
}

打开GameManager.cs脚本

using System.Collections.Generic;
using UnityEngine;
public class GameManager : GameRoot{
    [HideInInspector]
    public InfoSystem infoSys;
    #region 41资源框架
    public GameObject player = null;
    public List<GameObject> monsters = new List<GameObject>();
    #endregion
    protected override void Awake(){
        infoSys = gameObject.AddComponent<InfoSystem>();
        infoSys.Init();
    }
    #region 41资源框架
    public void InitGame(){
        //后续放任务系对话Npc
        //TODO
        //放我们的角色
        GameObject playerPrefab = Resources.Load<GameObject>("Prefabs/Players/PlayerNormal");
        GameObject player = Instantiate(playerPrefab, new Vector3(-18f, 43, 0f), Quaternion.identity);
        player.name = "PlayerNormal";
        //end
        //放我们的怪物
        GameObject loadedMonsterKing = Resources.Load<GameObject>("Prefabs/Monsters/Boss01");
        GameObject boss01 = Instantiate(loadedMonsterKing, new Vector3(0f, 45, 0f), Quaternion.identity);
        boss01.name = "Boss01";
        monsters.Add(boss01);
        //end
    }
    #endregion
}

保存后运行项目

本章做了重构资源加载框架 后续按照框架的思想继续制作项目

下篇文章的内容:

1.Boss的有限状态机

2.窗口可拖拽脚本

3.点击名称寻找地点功能

4.隐藏怪物的生成

5.怪物I攻击范围内的主动攻击

6.掉落坐骑蛋的获取

7.异步传送转换场景

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6


http://www.kler.cn/news/304754.html

相关文章:

  • 在 macOS 上管理 Node版本
  • 计算机存储概念
  • python numpy pytorch tensorlfow list 转tenser float 32的方法,模型计算基本用的都是float32,需要转换
  • 常见本地大模型个人知识库工具部署、微调及对比选型
  • mac上Charles怎么配置,可以抓取浏览器/IDEA的接口
  • 【getshell】phpmyadmin后台getshell(4.8.5)
  • springboot+security为什么@ControllerAdvice自定义的异常处理没有生效
  • 怎么去浮毛比较高效?热门除浮毛宠物空气净化器希喂、范罗士、有哈测评推荐
  • Linux与Ubuntu:内核与发行版的关系
  • MinGW-w64全面讲解:Windows平台的C/C++编译利器
  • Qt控制开发板的LED
  • openCV的python频率域滤波
  • 唯品会大数据面试题及参考答案(3万字长文)
  • C到C++入门基础知识
  • Linux环境基础开发工具---yum
  • Numpy 单位矩阵创建 eye()函数详解
  • 如何管理付费媒体预算:分配、风险与扩展
  • 企业数字化转型建设方案(数据中台、业务中台、AI中台)(可编辑的188页WORD)
  • 助力汽车半导体产业发展,2025 广州国际新能源汽车功率半导体技术展览会与您相约“羊城”广州
  • pm2 进程守护python flask
  • 《订单来了2024中秋预订趋势报告》发布:截至9月13日,商家中秋预订率上涨42.73%,山西文化巡礼成顶流
  • 2024年8月HarmonyOS鸿蒙应用开发者高级认证全新题库
  • JavaScript --函数的作用域(全局和局部)
  • Java面试篇基础部分-垃圾回收算法
  • 科研定制化无人机硬件技术详解
  • Leetcode面试经典150题-141.环形链表
  • CSP-J 算法基础 深度优先搜索
  • 如何通过 Apache Camel 将数据导入 Elasticsearch
  • cityengine修改纹理创建模型
  • 速通sass基础语法