1.unityåä¸ä¸ªdemoè¦å¤ä¹
2.Unity&Houdini探讨PCG下的官官方游戏关卡编辑器的开发可能性(Part.1)-草稿(Draft)和分布器
3.PuerTS我们把Node.js放进了Unity里(一)
4.Unity开发一款全屏弹幕射击游戏Demo技术指南+4天游戏开发训练营
5.Unity手游开发札记——从Odin插件聊基于元数据的编辑器实现
6.Unity3D 使用 WWW 加载场景并显示进度条
unityåä¸ä¸ªdemoè¦å¤ä¹
è¿ä¸ªè¦æ ¹æ®ä¸ªäººçæ åµæ¥çï¼åºæ¬ä¸ä¸ä¸¤ä¸ªææ¯å¸¸è§çæ åµï¼è¦çä½ å¯¹äºunityçæä½çç»ç¨åº¦ä»¥åå¶ä½demoçé¾æç¨åº¦çæ¹é¢èèãç¹å»å¼å§ä½¿ç¨unity
ç¹å»Newå¯ä»¥å建ä¸ä¸ªé¡¹ç®ï¼ç¹å»OPENå¯ä»¥æå¼ä¸ä¸ªå·²æçUnity项ç®è¿è¡ä¹åçç¼ç æä½
unityæ两个常ç¨çæ¬ macåwindows 建议è´ä¹°macçµèï¼ è¿æ ·ç好å¤å¾å¤ãä¸ä¸ä¸å举ã
å¦å¤unityçä½ çå¢éè§æ¨¡ï¼å¦æ人å°æå人ï¼å»ºè®®2d游æï¼ç¸å¯¹è½»æ¾ä¸å°ï¼å½ç¶æ票åå¾å¤ä¸è¥¿å¯ä»¥å¤å ã
æé纳
Unity&Houdini探讨PCG下的游戏关卡编辑器的开发可能性(Part.1)-草稿(Draft)和分布器
前言:
尝试在Unity环境下,结合程序化DCC(Digital Content Creation)工具Houdini,码下开发一个基于PCG(Procedural Content Generation)的官官方游戏关卡编辑器。这个想法的码下初衷是利用现成的程序化DCC工具减少关卡编辑器的工作量,将PCG技术深度融入编辑器中,官官方从而实现自动化和自动生成游戏关卡。码下久违的dmi源码Titian演示案例是官官方一个参考,它的码下核心在于hda和工具,展现了PCG在资源类型中的官官方强大能力。虽然Titian不是码下完整的游戏关卡,但它展示了如何用程序化方法创造令人惊艳的官官方游戏环境。我的码下目标是将此概念应用于Unity,构建一个真正意义上的官官方游戏关卡编辑器,验证PCG的码下价值,并在过程中积累学习经验。官官方
什么是关卡编辑器?
游戏关卡编辑器是游戏开发过程中不可或缺的工具,用于设计、创建和调整游戏中的关卡、地图或场景。它允许开发人员通过直观的界面布置游戏世界中的元素,如地形、道具、敌人、任务等,无需编写代码即可完成。
制作游戏关卡的流程应该怎么设计?
通常,关卡编辑器的制作流程包括预生产阶段、地图和布局设计、添加互动元素、dz原生app源码测试和优化、以及集成到游戏项目中等关键步骤。程序开发人员在这些阶段需要介入,从预生产到测试和优化,再到最终集成到游戏项目。
程序化DCC可以帮助编辑器开发人员减少哪些工作量?
使用程序化DCC工具如Houdini,编辑器开发人员可以在关卡编辑器搭建阶段大量减少工作量。尤其是地形和独立物件(如碰撞盒)的创建与管理,这些通常是编辑器开发中较为繁重的任务。Houdini的scatter功能尤其强大,能够实现高效、灵活的点散布,简化关卡中元素的分布设计。尽管如此,开发人员仍然需要负责代码逻辑的实现和编辑器功能的开发,只是工具选择和工作流程发生了变化。
实验Demo参考设计:
选取了一个图书馆场景作为实验的关卡概念设计。这个场景适合展示互动元素,并为解密游戏设计提供基础。关卡设计为玩家寻找逃离图书馆暗道的解密场景,涉及与NPC对话、解谜、放置正确书籍等互动元素。这个实验分为Part.1,主要讲解预生产阶段,制作草稿(Draft)和分布器。
预生产,分析关卡组成:
首先分析静态场景所需的wemall分销系统 源码资源,包括墙壁、天花板、壁式书架、地板等。根据分析结果,建立Blockouts模式的编辑器。在开始在Houdini制作前,还需设计编辑器功能,确保静态物体和互动元素的合理设计。
实验课题:
选择图书馆场景作为实验课题,考虑到其室内环境的特点,通过添加互动设计,如NPC、道具和敌人,丰富场景功能。设计要求玩家找到正确的书籍,并按照特定规则放置,以打开暗门。
Draft(草稿):
引入Draft(草稿)概念,作为快速预览和验证玩法的手段。Draft由关卡描述、视觉概念原画和文字辅助构成,帮助资源生产者理解关卡需求。通过Draft和文字描述,关卡编辑者可以准确罗列展示关卡资产需求。Draft的制作和分配过程是与资源生产流程紧密相连的。
关卡地形:
关卡地形包括房间、连接元素(如楼梯、js json parse 源码桥梁)和地形等。本实验以房间和连接为主,利用PCG建模技术生成简洁、规则的地形。
分布器Scatter:
Scatter功能允许高度定制和灵活分布关卡元素,通过Python脚本和VEX节点实现,确保高效和可控的资源生成。实现方式包括手工分布、范围型均匀分布、范围型随机分布以及规则分布等。
小结:
本篇文章概述了实验的预生产分析、草稿设计和Scatter分布器的初步制作。实验过程将持续进行,不断优化编辑器工作流,并分享相关技术实现细节。预计文章系列将涉及多个章节,最终成果将展示一个完整的关卡编辑器原型。
闲谈:
面对当前游戏行业环境的挑战,个人决定专注于PCG和工作流方向的发展。通过独立制作箱庭关卡游戏DEMO,旨在展示个人技术积累和创新尝试。尽管当前在求职市场中面临挑战,但坚信通过实践和创新,能够找到适合自己的路径。希望最终能够完成一个令人惊艳的DEMO,并期待有机会参与到PCG或工作流工具的开发工作中。
PuerTS我们把Node.js放进了Unity里(一)
PuerTS 的最新1.0.版本引入了Node.js执行引擎,为桌面平台(win/osx/linux)的微擎源码介绍用户提供了更丰富的Unity编辑器扩展能力。虽然有限制,但已经允许在Unity中使用Node.js内置库,如fs、/archives/),但是这种办法不适合在真正的 Unity3D 开发中,因为前一种需要把所有的场景都打包,这在某些情况下是不现实的,比如开发页游,我们不可能把所有的场景都打包让用户下载,我们需要一个场景一个场景的加载,这时候我们可以使用 WWW 先通过 HTTP 加载场景到本地缓存,然后再使用 Application.LoadLevel 或者 Application.LoadLevelAsync 函数加载场景,使用这种加载方式,不仅不需要 Build Settings - Add Current 处理加载场景,进度条的显示也更加容易,但是使用这种方式,需要先把场景打包成 unity3d(查看详情) 或者 assetbundle(查看详情) 文件。
先把测试场景搭建好,如图:
然后添加一个 C# 脚本,取名 UseWww.cs,全部代码如下:
复制代码
代码如下:
using UnityEngine;
using System.Collections;
public class UseWww : MonoBehaviour
{
public UISlider progressBar;
public UILabel lblStatus;
private WWW www;
private string scenePath;
void Awake()
{
this.scenePath = "file:///" + Application.dataPath + "/Assets/MainScene.unity3d";
// 开始加载场景
this.StartCoroutine (this.BeginLoader ());
}
void Update()
{
if (this.www != null this.progressBar != null !this.www.isDone)
{
// 更新进度
this.progressBar.value = this.www.progress;
}
}
private IEnumerator BeginLoader()
{
this.lblStatus.text = "场景加载中,请稍候。。。";
// 加载场景使用 WWW.LoadFromCacheOrDownload,函数,这样加载完成才能使用 Application.LoadLevel 或者 Application.LoadLevelAsync
this.www = WWW.LoadFromCacheOrDownload (scenePath, Random.Range(0, ));
yield return this.www;
if(!string.IsNullOrEmpty(this.www.error))
{
this.lblStatus.text = "场景加载出错!";
}
if (this.www.isDone)
{
this.lblStatus.text = "场景正在初始化,请等待。。。";
Application.LoadLevelAsync("MainScene");
}
}
}
然后把这个脚本挂载到游戏场景的一个对象中,设置好相关属性,如图:
运行我们的游戏,可以查看进度条的加载情况,当加载完成,自动跳转到下一个场景中,如图:
因为前面我封装了一个 WWW 加载管理器(查看详情),我们可以直接拿来使用,我们建立一个新的 C# 脚本,取名 UseWwwLoaderManager.cs,全部代码如下:
复制代码
代码如下:
using UnityEngine;
using System.Collections;
public class UseWww : MonoBehaviour
{
public UISlider progressBar;
public UILabel lblStatus;
private WWW www;
private string scenePath;
void Awake()
{
this.scenePath = "file:///" + Application.dataPath + "/Assets/MainScene.unity3d";
// 开始加载场景
this.StartCoroutine (this.BeginLoader ());
}
void Update()
{
if (this.www != null this.progressBar != null !this.www.isDone)
{
// 更新进度
this.progressBar.value = this.www.progress;
}
}
private IEnumerator BeginLoader()
{
this.lblStatus.text = "场景加载中,请稍候。。。";
// 加载场景使用 WWW.LoadFromCacheOrDownload,函数,这样加载完成才能使用 Application.LoadLevel 或者 Application.LoadLevelAsync
this.www = WWW.LoadFromCacheOrDownload (scenePath, Random.Range(0, ));
yield return this.www;
if(!string.IsNullOrEmpty(this.www.error))
{
this.lblStatus.text = "场景加载出错!";
}
if (this.www.isDone)
{
this.lblStatus.text = "场景正在初始化,请等待。。。";
Application.LoadLevelAsync("MainScene");
}
}
}
然后我们把原先的脚本从场景移除,挂载这个新的脚本,如图:
运行游戏,可以看到与上面同样的加载效果。
百度网盘下载地址:/s/1hq7pgd2 密码: lc4y
盘点个Unity开源游戏,yyds!
Mindustry
开源地址:github.com/Anuken/Mindu...
一个开源的塔防/工业游戏,拥有丰富的资源管理和战斗机制。该项目使用Java编写,但是它的游戏客户端部分是用Unity制作的。
TowerDefense-GameFramework-Demo
下载地址:植物大战僵尸版本手册
可以下载《植物大战僵尸》的各个版本,例如《植物大战僵尸年度版》、《植物大战僵尸杂交版》、随机系列版本、其他魔改版本、手游系列魔改版本。
这次给大家收集应该是最全面的植物大战僵尸版本合集,总计+个版本。
目前杂交版最新的是V2.1,同时支持电脑端、苹果端、安卓端。
植物大战僵尸杂交版,是在原版基础上将多种植物融合在一起进行创新的改版,顾名思义,杂交版的植物均由原版两种或多种植物“杂交”而来,可以说是原版的plus形态。
什么千奇百怪的杂交植物都有,这下僵尸们倒霉了。
成功运行,如图所示:
实测可玩:
改版过后的植物大战僵尸难度更高,趣味性和观赏性也大幅提升,吸引了非常多玩家、UP主和游戏主播慕名游玩。
版本非常多,一共个版本。
从某种角度来说,改版、二创等广泛流行的内容算不上新鲜的事情,在许多老游戏像是《上古卷轴》《我的世界》,都能找到大量由玩家和创作者搭建的全新游戏内容,很多内容都远远超出当初的游戏本体。
金庸群侠传 3D 重制版
开源地址:github.com/jynew/jynew
视频展示:jy-new.com
金庸群侠传,是于年台湾发行的电脑游戏,游戏是以金庸笔下的十四部武侠小说所改编,绝大部分的人物、武功、物品及剧情发展都十分忠于金庸原著,玩家可以与部分金庸小说人物共同冒险。
今天推荐的这个项目是「金庸群侠传 3D 重制版」是一个非盈利游戏项目,重制经典游戏《金庸群侠传》(在线玩 DOS 原版)并支持后续一系列 MOD 和二次开发。
看一下游戏的效果:
开源地址:github.com/dgkanatsios/...
这款游戏的玩法很简单,每次可以选择上下左右滑动,每滑动一次,所有的数字方块都会往滑动的方向靠拢,系统也会在空白的地方乱数出现一个数字方块,相同数字的方块在靠拢、相撞时会相加。
不断的叠加最终拼凑出这个数字就算成功。
跳一跳
开源地址:Unity项目/Unity-JumpJump
开发版本 Unity .3,游戏包含功能有:角色跳跃、相机跟随、台子自动生成、死亡判定及重新开始游戏、分数统计、色蓄力的粒子效果、角色蓄力效果、角色蓄力台子效果、飘分效果、联网排行榜功能、翻倍加分功能。
本游戏包含的功能:
awesome-unity-open-source-on-github
开源地址:github.com/baba-s/aweso...
面向Unity初学者的开源项目合集,目前已经手机了+个Unity相关开源项目。
3d-game-shaders-for-beginners
开源地址:github.com/lettier/3d-g...
3d-game-shaders-for-beginners 是一个手把手教你一步步实践,从 SSAO、着色、光影处理、法线贴图(凸凹贴图的一种表现)带你体验 3D 游戏的制作。
《多人射击》
开源地址:github.com/Armour/Multi...
基于Unity游戏引擎的多人第一人称射击游戏。目前较为活跃的FPS设计游戏项目。
暗黑破坏神2
开源地址:github.com/mofr/Diabler...
一个经典的角色扮演游戏。游戏中玩家创建属于自己的角色,在一片片暗黑大地上奔跑、杀敌、寻宝、成长,最终打败统治各个大陆的黑暗势力,拯救游戏中的各个种族。
炸弹人-无限
gitee.com/Foldcc/ZhaDan...
使用Unity3D制作的经典炸弹人,开源项目,无限关卡版,还原了经典炸弹人的所有功能,供大家相互学习。Unity版本:.1
相关技术点:
方块消消乐
gitee.com/Foldcc/FangKu...
实现功能有:
坦克大战
gitee.com/hupeng_admin/...
天空旅者
gitee.com/Foldcc/sky_tr...
玩法和跳一跳/欢乐跳瓶相同,无限关卡,使用Unity5.x(现在升级为)。
拯救猫头鹰
gitee.com/TickStudio/re...
游戏主题
拯救猫头鹰是一款以保护动物为主题的手机游戏,其游戏内容讲述了一位小女孩在发现猎人捕捉猫头鹰进行贩卖后,通过自己的努力赚取金钱,来解救这些处于水深火热中的小家伙。
游戏内容
玩家扮演主角通过开始的步行拾取金币,当玩家凑够个金币则可以解锁跳跃技能,这时候便可以去更高的地方去拾取更多的金币去购买钥匙。钥匙是用来为小猫头鹰开笼子的,所以玩家需要操作角色找到猫头鹰的地点,并且拥有足够多的金钱换取到钥匙则可以救出猫头鹰。
TowerDefense-GameFramework-Demo
开源地址:github.com/DrFlower/Tow...
开源的塔防游戏示例。此项目主要用来上手和学习基于 Unity 引擎的游戏框架 GameFramework,感兴趣的同学可以把玩一下。游戏共有五个关卡,玩家通过击杀敌人和建造能量塔获取资源,消耗能量建造防御塔阻止敌人攻击基地。
如有帮助,点赞支持一下吧。