惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
Latest news
Latest news
博客园 - 三生石上(FineUI控件)
美团技术团队
aimingoo的专栏
aimingoo的专栏
Google Online Security Blog
Google Online Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threatpost
Y
Y Combinator Blog
T
Tailwind CSS Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
Arctic Wolf
C
Cyber Attacks, Cyber Crime and Cyber Security
小众软件
小众软件
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
Tenable Blog
W
WeLiveSecurity
L
LINUX DO - 热门话题
D
Docker
Cyberwarzone
Cyberwarzone
量子位
A
About on SuperTechFans
The Last Watchdog
The Last Watchdog
雷峰网
雷峰网
C
CERT Recently Published Vulnerability Notes
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
O
OpenAI News
Hacker News - Newest:
Hacker News - Newest: "LLM"
Scott Helme
Scott Helme
IT之家
IT之家
S
Secure Thoughts
MongoDB | Blog
MongoDB | Blog
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News

UNITY

刚才清理废纸篓的时候发现一封没看的 unity 邮件, 这是以后不让用 Unity 开发国外版本的游戏了? 逼着使用腾讯的 Tuanjie 引擎吗? Tuanjie 打出来的包好像会强加水印啥的. - V2EX 中国区用户的海外 Unity 资源商店的访问权限将于 2026 年 3 月 31 日终止 有哪个头显是能实时连接 Unity 编辑场景的? - V2EX unity 国区账号如何下载 unity 商店资源? - V2EX unity 可以做三维建模 vr 效果吗 - V2EX gaia pro 问题请教 - V2EX Cursor 等一众 AI 编程工具目前和 Unity 游戏开发的结合怎么样了? Unity 游戏开发想用 AI 提高生产率目前都有什么比较好的方案或者工具? - V2EX Unity 股价只剩三年前的 10%了(200USD=>20USD)会不会被哪个大公司收购? - V2EX Unity 6 现在国区不让下载了 - V2EX Unity 答疑,任何问题都可以 - V2EX 当我用 Unity 开发游戏的时候有什么场景下要使用“栈”操作? - V2EX 为什么 Unity 自带的资源加密功能是中国版特供的? - V2EX Unity 远程开发岗位,感兴趣小伙伴看过来 - V2EX unity 2D 像素精灵的生成有推荐的方法吗? - V2EX 远程 Unity 开发工程师(英国) - V2EX 求推荐点 Unity 入门教程 - V2EX 请教个语音听写的问题 - V2EX Unity 打包后出现 "trial version" - V2EX 有没老哥用 m2 开发 unity 的 - V2EX 如何看待 Unity 新出的每次安装收费? - V2EX 为什么 Unity 的定价策略增加了对安装量的限制? - V2EX unity 将于 2024 年 1 月调整收费模式 - V2EX [Unity 离奇 Bug] 游戏在编辑器内运行 ok,构建出的 exe 却不能在本机正常运行 - V2EX 3 维空间中,求过原点的直线的方向向量? - V2EX 求推荐资源 - 俯瞰视角场景设计相关 - V2EX 震惊,有个框架竟然能快速让 Unity 新手制作可热更游戏!竟然可以让老项目快速对接具备热更性质! - V2EX 大佬们 学习 Unity 遇到的两个问题求助 - V2EX 有人对 unity 的 photon 组件熟悉的嘛,想有偿咨询几个问题 - V2EX 用 Unity3d 来做跨平台开发是不是很好? - V2EX 对于 U3D Stopwatch ElapsedTick 的疑惑 - V2EX 有偿提供 unity 虚拟面试~ - V2EX 问一下各位大哥关于买网络授课是否有必要的问题 - V2EX 请问通过 unity WebGL 能播放 rtmp,可以实现吗? - V2EX ShaderLab 入门实践 - V2EX Unity 热更新 之 如何使用 AST 转换 C# -> Lua - V2EX 按需渲染如何改善移动端性能? - V2EX 怎么通过 Unity 使用 Vulkan API & 移动端 Vulkan GPU 大 PK - V2EX Unity3D 实用技巧 - 快速学会模型合理导入 Unity3D 引擎 - V2EX Unity3D 实用技巧 - 从实践中总结经验(1) - V2EX [HDRP] PBR Lit shader(一.基础用法篇) - V2EX 如何将 Unity 以库形式集成到原生 iOS 和 Android 应用 - V2EX 如何在 Timeline 中创建自定义轨道? - V2EX 写给 Unity 开发者的 iOS 内存调试指南 - V2EX Unity3D 常用插件汇总 - V2EX 在 Unity 实现游戏命令模式 - V2EX Unity ECS(一)了解 ECS 与 DOTS - V2EX 使用 Unity 制作游戏 AI - V2EX 零基础入门 Unity Shader(二) - V2EX 如何实现存储和加载游戏数据 - V2EX
[UnityTips] 一种仿 Minecraft 物品合成的思路 - V2EX
unn · 2020-03-04 · via UNITY

本文转自 Unity Connect 博主 超级汽水

最近在做一个小游戏,遇到了合成问题这里分享一下制作思路~ 📕

本篇只讲解一下大概思路提供部分代码,完整的代码应该会在以后和项目一同提供 ~ 💡💡💡 Minecraft 中的合成概述

image

在 Minecraft 中,最基本的合成台是一个 2 * 2 的合成,我这里以 A、B、C、D 来代表它的四个格子。 合成分为俩种合成 :(在 Minecraft 中不单单只有这俩种,我这里为了方便介绍简化了)

  1. 有序合成

  2. 无序合成

有序合成是指所有的物品必须按照指定的位置摆放,位置摆放不正确是无法合成的比如斧头、锄头、盔甲等,这也是本文中着重讲解的内容,因为无序合成情况比较复杂我会在日后专门提出来尝试说明。

image

仿制 2 * 2 合成思路 : 对合成有了大致概念以后我来说说我对这种对位置有要求的合成的仿制方案:

  1. 对游戏中所有的物品设置唯一物品 ID,用来代表这个物品可以用数值或者字符串。

  2. 对游戏中所有物品设置唯一合成 ID,用来代表这个物品的合成公式,这里用字符串来代表。

  3. 对合成台的每个格子设置唯一标识 ,如上文中的 ABCD。

  4. 合成时将格子的标识与格子中物品的 ID 组合为一个字符串,空格用 * 来表示得出合成公式。

  5. 与已有的合成公式做比对,找到结果。( 搜索可以优化的地方很多,能力有限就不写出来误人子弟了 )

也就是说一个物品它拥有俩种身份标识,一种是唯一的 ID 给程序进行判断它是什么物品;另外一个是它的合成配方,表示它的合成方法,这个可以有多种。

物品具有俩种标识

接下来我们尝试表示合成 💕 的过程 : 假设我们要使用 🍗 (炸鸡) + 🍺 (啤酒) 合成 💕 (快乐)。

  • 把 🍗 的 id 物品设为 001

  • 把 🍺 的 id 物品设为 002

  • 把 💕 的 id 物品设为 010

  • 把 💕 的合成公式设置为 :A001BCD002

提前将 💕 的公式写好,然后将它保存好。如果游戏中有大量的公式需要保存也可以试试 SQLite 数据库,不过通常情况下只需要保存为 Json 或是 YAML 格式即可。 根据 💕 合成公式 A001BCD002,我使用图来表示的话是这样 :

image

这样一个简单的合成系统设计就完成了,但是这个系统并不完美还需要后期优化许多我这里也只是起到一个抛砖引玉的作用。 🤗 代码设计

using System.Collections.Generic;
using UnityEngine;

public class CraftingTable : MonoBehaviour
{
    // 合称表
    private  Dictionary<string, int> _itemMakeTables = new Dictionary<string, int>();
    // 物品表
    private  Dictionary<int, string> _itemNameTables = new Dictionary<int, string>();

    private void Start()
    {
        //添加一个合成配方合成产物为 ID 是 10 的物品
        _itemMakeTables.Add("A001B*C*D002",10);
        //添加一个 ID 为 10 的物品
        _itemNameTables.Add(10, "幸福星星");

        //模拟合成
        Debug.Log(Make("A001B*C*D002"));
    }

    // 物品合成函数,接受合成公式返回合成出的物品名
    private string Make(string formula)
    {
        string itemName = null;
        //判断公式是否正确
        if (_itemMakeTables.TryGetValue(formula,out int itemID))
        {
            //根据物品 id 查询物品名字
            itemName = _itemNameTables[itemID];
            return itemName;
        }
        else
        {
            return itemName;
        }

    }

}

结果

原文链接:https://connect.unity.com/p/unitytips-yi-chong-fang-minecraft-wu-pin-he-cheng-de-si-lu?app=true

欢迎戳上方原文链接,下载 Unity 官方技术社区 app,在线技术答疑,发现更多资源干货!