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

『功能项目』项目优化 - 框架加载资源【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>();#endregionprotected 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相关问题与解答
  • ARM/Linux嵌入式面经(三五):诺瓦星云提前批
  • JavaScript高级——循环遍历加监听
  • 我的标志:奇特的头像
  • Error: ENOENT: no such file or directory, uv_cwd
  • jeesite支持db2数据库初始化sql
  • Ubuntu下安装最新版本Apache2文件服务器
  • 单片机带隙电压基准电路
  • 把设计模式用起来!(3)用不好模式?之时机不对
  • 如何用 OBProxy 实现 OceanBase 的最佳路由策略
  • 在linux注册服务并开机启动springboot程序
  • html+css+js网页设计 旅游 大理旅游7个页面
  • 变量取值范围
  • MyBatis快速入门
  • Jwt、Filter、Interceptor
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • css选择器
  • IndexedDB
  • JavaScript 一些 DOM 的知识点
  • javascript从右向左截取指定位数字符的3种方法
  • java多线程
  • node学习系列之简单文件上传
  • Rancher如何对接Ceph-RBD块存储
  • Redis的resp协议
  • Spring Cloud中负载均衡器概览
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue组件定义
  • 阿里云Kubernetes容器服务上体验Knative
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 前嗅ForeSpider中数据浏览界面介绍
  • 我的业余项目总结
  • 协程
  • 译自由幺半群
  • 用jquery写贪吃蛇
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • puppet连载22:define用法
  • 阿里云重庆大学大数据训练营落地分享
  • 如何在招聘中考核.NET架构师
  • 昨天1024程序员节,我故意写了个死循环~
  • ​数据结构之初始二叉树(3)
  • #QT(串口助手-界面)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #传输# #传输数据判断#
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (6)STL算法之转换
  • (C#)一个最简单的链表类
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战