如果已经看过本章节:目录传送门:这是目录鸭~

1.场景搭建:

首先我们去AssetStore逛淘宝~~~

我淘到的是这个资源,其他好看的场景(消耗不高的都行)。

然后我们导入了这个资源后,把资源根文件夹的名字改为Select,把Demo场景文件的名字改为Selection,我这样修改的emmm...

然后打开那个Demo场景,走到LightningSetting关闭雾效果(这个消耗有点大,关一下,你开心也可以不关的~):

然后我们就在场景里移动Main Camera到你喜欢的好看的位置~

顺便创建个Reflection Probe(反射效果的):

前面是没加的,后面是加了的,区别有点小,仔细看右边的更漂亮诶~~~

然后我们在场景中创建空对象,重新命名为你喜欢的名字,用于展示英雄的角色坐标的定位,我在里面放了个阿离并把相对坐标设置为零来测试站的位置是否准确(我这里面还有个光照是因为脸部比较暗,你可以自己调整光照的,对~说的就是你o(*^▽^*)o):

到此为止~我们的场景就搭建完毕了亲亲~

2.英雄资源的打包相关(重要!!!):

命名规则:我们可以看到,农药的AssetBundle命名结构是:英雄ID+皮肤编号(没有空格,比如说阿离的ID是199,这个花间舞是第二个皮肤,所以ID为1992,第一个默认皮肤不需要输入皮肤ID就199就好了)_英雄拼音_资源类型.assetbbundle。(下面可以看到廉颇ID是105,这个设定使得我们提资源十分方便~良心TX~):

然后我们也打算用这种规则来命名~

下面部分含有代码~

创建几个新文件夹在根工程目录下,路径是 ActorManager/Scripts,然后再在里面创建一个Csharp(即C#),名为ActorManager:

 /*
* 编辑者:Miku酱
* 版本:1
* 首次编写日期:2019/09/15 13:53
* 修改日期:2019/09/15 13:53
* 强行加一行~~~
*/ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LuoHao.AssetBundleManager; namespace LuoHao.Actor
{
public class ActorManager : MonoBehaviour
{
/// <summary>
/// 角色信息文件的列表
/// </summary>
[TextArea]
public List<string> actorFileList = new List<string>();
/// <summary>
/// 全部的角色信息
/// </summary>
public static Dictionary<int, ActorInfoData> allActor = new Dictionary<int, ActorInfoData>(); private void Awake()
{
LoadAllActor();//加载
DontDestroyOnLoad(this.gameObject);//切换场景不销毁这个物体
// Debug.Log(allActor[100].actorName);//测试 }
/// <summary>
/// 加载角色信息
/// </summary>
public bool LoadAllActor()
{
for(int i = ; i < actorFileList.Count; i++)
{
//取得文件
PackageForAssetBundle pfa= AssetBundleManager.AssetBundleManager.GetAssetBundle(actorFileList[i]);
//加载资源
GameObject[] gms = pfa.GetAssetBundle().LoadAllAssets<GameObject>();
ActorInfo[] ai = gms[].GetComponents<ActorInfo>();
if (ai.Length == )//数组长度为0则返回错误
{
Debug.LogError("加载角色信息文件失败!\n错误文件位置:"+actorFileList[i]);
return false;
}
else
{
for (int i1 = ; i1 < ai.Length; i1++)
allActor.Add(ai[i1]._actorInfoData.actorID, ai[i1]._actorInfoData);
//信息载入字典....
}
pfa.UnLoadAssetBundle(true);//卸载ab包
} return true;
} } /// <summary>
/// 储存单个角色信息的类
/// </summary>
[System.Serializable]//序列化,注意要用System命名空间下面的
public class ActorInfoData
{
/// <summary>
/// 角色名字
/// </summary>
public string actorName = "英雄名字";
/// <summary>
/// 角色拼音
/// </summary>
public string actorPinYin = "PinYin";
/// <summary>
/// 角色ID
/// </summary>
public int actorID = ;
/// <summary>
/// 屏蔽英雄
/// </summary>
public bool banActor = false;
/// <summary>
/// 角色背景
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string actorBG = "背景故事"; /// <summary>
/// 皮肤列表(第一个就是原皮,必填)
/// </summary>
public List<ActorSkin> actorSkins = new List<ActorSkin>(); }
/// <summary>
/// 储存单个皮肤的
/// </summary>
[System.Serializable]//序列化
public class ActorSkin
{
/// <summary>
/// 皮肤名字
/// </summary>
public string skinName = "皮肤名字";
/// <summary>
/// 皮肤展示模型资源路径
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinShowModelPath = "皮肤展示模型资源路径";
/// <summary>
/// 皮肤对战模型资源路径
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinBattleModelPath = "皮肤对战模型资源路径";
/// <summary>
/// 皮肤展示特效资源路径
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinShowEffectPath = "皮肤展示特效资源";
/// <summary>
/// 皮肤对战特效资源路径
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinBattleEffectPath = "皮肤对战特效资源";
/// <summary>
/// 皮肤原画位置
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinBannerPath = "皮肤原画位置";
/// <summary>
/// 皮肤小图标位置
/// </summary>
[TextArea]//这个是文本框,显示在编辑器的
public string skinIconPath = "皮肤小图标位置";
}
}

脚本ActorInfo(承载信息的载体):

 /*
* 编辑者:Miku酱
* 版本:1
* 首次编写日期:2019/09/15 13:53
* 修改日期:2019/09/15 13:53
* 强行加一行~~~
*/ using System.Collections;
using System.Collections.Generic;
using UnityEngine; namespace LuoHao.Actor {
public class ActorInfo : MonoBehaviour
{
[Header("角色信息")]
public ActorInfoData _actorInfoData;
}
}

创建角色信息数据库:

新建一个物体,并挂上脚本ActorInfo,修改信息(你开心就好随便想改啥就改啥~),然后制作成预制体并且设置标签:

然后在点击工具栏的打包AssetBundle的按钮,打包这个预制体,最后我们在场景中随便找个物体挂上ActorManager,并增加一个路径(就是你预制体标签的名字加后缀,标签默认是全部小写,我们设置的时候大小写不影响文件读取):

这步加载没错误就OK了,记得删除测试用的Test对象,请看下一节。

施工了一个中午emmm~头发又少了几根,下一部分再见咯~

如果已经看过本章节:目录传送门:这是目录鸭~

[1]尝试用Unity3d制作一个王者荣耀(持续更新)->选择英雄-(上)的更多相关文章

  1. [3]尝试用Unity3d制作一个王者荣耀(持续更新)->选择英雄-(中)

    如果已经看过本章节:目录传送门:这是目录鸭~ 上节内容写了Actor管理器,那么这一节让我们先创建一个角色.(此章节开始加速...) 1.制作角色展示AssetBundle: 提取农药某个展示模型(S ...

  2. [0]尝试用Unity3d制作一个王者荣耀(持续更新)->游戏规划

    太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...

  3. [1]尝试用Unity3d制作一个王者荣耀(持续更新)->AssetBundle管理器

    如果已经看过本章节:目录传送门:这是目录鸭~ 1.AssetBundleManager: 首先我们创建一个文件夹,叫AssetBundleManager,再创建Csharp(即C#)脚本,名为Asse ...

  4. 尝试用kotlin做一个app(二)

    导航条 我想实现的效果是这样的 类似于ViewPager的效果,子类导航页面可以滑动,当滑动某个子类导航页面,导航线会平滑地向父类导航移动 ·添加布局 <!--导航分类:编程语言/技术文档/源码 ...

  5. 尝试用kotlin做一个app(五)

    JSP后台管理系统 开发工具是IntelliJ IDEA+tomcat+mysql5.6.19+mysql-connector-java-5.1.48.jar+easyui+kindeditor 之前 ...

  6. 尝试用kotlin做一个app(四)

    本来是应该为主页加载数据库数据了,但是想着做后台,之前写jsp后台写吐了,所以先拖几天.把之前的代码完善一下,或者添加些新内容. ...... 多个fragment切换卡顿 首先修正一个bug.从主页 ...

  7. 尝试用kotlin做一个app(三)

    新闻列表 添加新闻列表可以使用RecyclerView.但是有个问题,RecyclerView只会在内部滚动,不会带动整个屏幕滚动.所以在原根布局外层添加androidx.core.widget.Ne ...

  8. 尝试用kotlin做一个app(一)

    1.先添加一下anko库 依赖:implementation "org.jetbrains.anko:anko:$anko_version" 版本:ext.anko_version ...

  9. 尝试用kotlin做一个app(写在前面)

    学kotlin的目的好像就是做一个app,不一定有什么想做的项目,只是单纯想掌握这一门技术,确切地说只是单纯想学会做app.对于概念的东西,我也没兴趣深究,用得到的学一下,用不到的,就算了.我也不知道 ...

随机推荐

  1. SpringBoot:如何优雅地处理全局异常?

    之前用springboot的时候,只知道捕获异常使用try{}catch,一个接口一个try{}catch,这也是大多数开发人员异常处理的常用方式,虽然屡试不爽,但会造成一个问题,就是一个Contro ...

  2. UnityShader之积雪效果

    积雪效果是比较简单的,只需要计算顶点法线方向和世界向上方向之间的点乘,将得到的值与预设的阀值比较,小于阀值为0,用这个值进行插值就OK了 代码: Shader "MyShader/SnowS ...

  3. vue-cli项目下引入vant组件

    前言 Vant是有赞前端团队基于有赞统一的规范实现的 Vue 组件库,提供了一整套 UI 基础组件和业务组件.通过 Vant,可以快速搭建出风格统一的页面,提升开发效率.目前已有近50个组件,这些组件 ...

  4. DIY cnblog——背景渐变切换

    进来的小伙伴应该已经看过了我的博客样式,但还是贴张图先: 先大致说一下实现的思路,然后把代码贴出来供小伙伴们参考. 由于不是特别技术性的文章,格式就放宽松一点,跟着意识流走吧. 先跟大家分享一个渐变背 ...

  5. Security Guards (Gym - 101954B)( bfs + 打表 )

    题意及思路 题目主要是讲先给出所有guard的位置,再给出所有incidents的位置,求出guard到达每个incident处最小的steps,其中guard每次可以向四周8个方向移动. 思路:对于 ...

  6. Linux之vim详解

    第一次使用vim,啥都不懂,输入也不能输入,退出也不会退出,特别的尴尬....后来慢慢的接触学习,发现vim真的挺好用的,不过上手有点慢,多用就对了,用多了我相信你也会喜欢这个文本编辑工具的 一.vi ...

  7. 基于Visual C#的AutoCAD开发——一些网址

    https://blog.csdn.net/xwebsite/article/details/5578446 http://www.cadgj.com/?p=1504

  8. 信安周报-第02周:SQL基础

    信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...

  9. coo ceo cfo cto cio 区别

    常见的CEO(Chief executive officer)首席执行官类似总经理.总裁,是企业的法人代表. COO(Chief operating officer)首席运营官 类似常务总经理CFO( ...

  10. C++责任链

    #include <iostream> using namespace std; class Base{ protected: Base *next; public: Base(Base ...