Unity中的渲染路径 Unity的渲染路径 在Unity里,渲染路径(RenderingPath)决定了光照是如何应用到UnityShader中的。因此,我们只有为Shader正确地选择和设置了需要的渲染路径,该shader的光照计算才可以被正确执行。 unity中的渲染路径: ForwardRenderingPath(向前渲染路径) DeferredRenderingPath(延迟渲染路径)【新的版本已替换老版本】 VertexLitRenderingPath(顶点渲染路径)【Unity5.X之后已被抛弃】 大多数情况下,一个项目只会使用一种渲染路径。 ForwardRendering...

  1wMBnbixARwC   4天前   30   0   0 游戏开发

在Unity中,如果我们要存储数据,通常会使用以下几种方法: 1.Unity官方提供的PlayerPrefs 2.Unity官方提供的ScriptableObject 3.使用Json,XML,CSV等文件保存 4.使用数据库存储   而在Webgl手机小游戏中,通常会以PlayerPrefs进行保存,因为PlayerPrefs是一个极其轻量级的存储方式 可以用于存储一些小游戏的数据(只能存储int,float,string三种类型) 它主要的方法有以下这些: 1//保存玩家的分数 2PlayerPrefs.SetInt("PlayerScore",100); 3//获取玩家的分数...

  2EnBn4DXWB6r   6天前   36   0   0 游戏开发

在Unity实现角色攀爬 前言 开放世界类型的游戏近年也热门起来了,自由攀爬也成了这一类游戏的一大特色。攀爬给了玩家更多探索路径的选择,也让地图设计有了更多思路。这次,我们就来尝试在Unity中制作一个人形角色的攀爬。 注:攀爬是一个角色完整动作系统的一部分,本文暂且抛开其它动作,也不涉及动画,仅针对攀爬逻辑的实现这一点。 主要实现 首先,我们要意识到,游戏中的攀爬行为已经与物理系统没有太大关系了。在攀爬时,角色实际上进入了一种“悬浮”状态,然后贴着墙面运动。攀爬系统要做好,就在于如何能让角色贴着墙面运动。 或许说到这,你脑海里已经想到了很多千奇百怪的攀爬面,但其实,任何攀爬面只要能抓住...

  PfEVswrG0sbF   12天前   42   0   0 游戏开发

我不想和任何人说话,大家不要打扰我。这个游戏的源码(含教程文档)我放到了夸克网盘https://pan.quark.cn/s/618fb9459029 小区: 小区傍晚的雪: 小区的晚上: 家里: 市中心: 市街道: 郊区: (一)声明小区场景的三维模型来自于UnityStore的unity包:LowPolyJapaneseHousingComplex。很多人在用,所以我的游戏和其他人的游戏出现这个相同场景,不是抄袭。而且那只是个三维模型,程序要自己写,每个人写的程序是不同的。市中心、市街道、郊区场景,来自UnityStore的unity包:258316_Anime_Tokyo_(Japane...

  eQf7RGnLNSNs   2024年08月16日   112   0   0 游戏开发

Unity中利用遗传算法训练MLP 梯度下降法训练神经网络通常需要我们给定训练的输入-输出数据,而用遗传算法会便捷很多,它不需要我们给定好数据,只需要随机化多个权重进行N次“繁衍进化”,就可以得出效果不错的网络。 这种训练方式的好处就是不需要训练用的预期输出数据,适合那类可以简单通过环境交互判断训练好坏的神经网络AI。当然,坏处就是训练的时间可能需要很长很长,尤其是神经网络比较庞大时。 完整项目gitee链接:点击这里 用ComputeShader实现神经网络 神经网络的计算一般都用矩阵优化,像python语言者学习实现神经网络时,通常会借助numpy的torch进行计算,加速运算过程。 ...

  PfEVswrG0sbF   2024年08月14日   63   0   0 游戏开发

1前言 VAO和VBO属于我们学习opengl最先接触的几个概念,最开始学习的时候有可能无法直观的理解这个概念的作用和使用方法。笔者也是opengl新手,在此记录学习的相关笔记,便于之后进行查看。本文主要参考learnopengl教程以及opengl官网中的用法和解释,文中的代码实例使用opengl3.3,过早版本可能无法正常运行。 2VertexSpecification 在解释VAO和VBO之前,我们需要了解其所属的渲染流水线阶段,在openglwiki中,这一阶段被称为VertexSpecification,在接下来的文章中,我们将其称为顶点规范,以下为官网的原文解释 VertexSp...

  5GjgSd2njIaU   2024年08月07日   55   0   0 游戏开发

架构演化学习思考(4) IOC的学习认识 IOC相关概念认识 什么是IOC? IOC全称为InversionOfControl,即控制反转。它是一种控制思想,可以解释为类和类之间的依赖关系不再由代码直接控制,而是通过容器来控制和配置实现。 控制反转?那么什么是正传?反转有啥好处?IOC到底是啥? 好,那就开始逐步认识和了解吧 既然是一种思想,那就从它的常见实现方式DI来入手。 DI DI,即DependenceInjection,依赖注入,它是IOC的一种实现。 依赖这个概念我们在第一篇文章中解释过,它是一种对象/引用的持有关系。 最简单的单项依赖: A对B产生依赖关系。 publicclas...

  1wMBnbixARwC   2024年08月07日   47   0   0 游戏开发

我们游戏内的视频录制目前只支持avi固定码率,在玩家见面会上有玩家反馈希望改善录制画质,我最近在研究了有关视频画质的一些内容并做了一些统计。 录制视频大小对比 首先在游戏引擎中增加了对录制mp4格式的支持,并且使用h246编码可以直接在网页上播放无法再做转码 测试场景:视频尺寸固定大小为:1904x1002,avi使用mpeg4,mp4使用h264,比特率(bitrate/码率)20Mb/s,录制出来的视频文件大小 视频格式 30fps/30s 30fps/60s 60fps/60s 60fps/180s avi视频大小 70.2 143.07 144.03 429.44 m...

  vWa2lMmTbsfJ   2024年08月07日   80   0   0 游戏开发

共享纹理 老游戏使用directx9无法直接与cc高光sdk(d3d11)对接,但是d3d9ex有共享纹理,我们通过共享纹理把游戏画面共享给cc录制,记录一些踩坑的笔记。 共享纹理示例: //初始化Direct3D voidinitD3D9(HWNDhWnd) { hr=d3d9exdev->GetRenderTarget(0,&g_d3d9RenderSurface); D3DSURFACE_DESCdesc; g_d3d9RenderSurface->GetDesc(&desc); //关于格式说明:图像的格式必须与desc.format的格式一致,否则共享纹理...

  vWa2lMmTbsfJ   2024年08月07日   55   0   0 游戏开发

架构演化学习思考(3) 接上一篇我们继续对命令模式进行学习。 在这节内容中,我们聊一下经典的命令模式,还记得上一篇文章开头我们实现的简单的命令模式吗?来看代码,非常简单易解。 publicinterfaceICommand { voidExecute(); } publicclassPlayMusicCommand:ICommand { publicvoidExecute() { Debug.Log("你说家是唯一的城堡,随着稻香一路奔跑"); } } varStart() { varcommand=newPlayMusicCommand(); command.Execute(); } ...

  1wMBnbixARwC   2024年08月07日   63   0   0 游戏开发

架构演化思考总结(2) ​—-–从命令模式中来探索处理依赖关系 在正式引入命令模式的概念之前,我们先从简单的案例来逐步演化大家在书面上常见到的内容。 publicinterfaceICommand { voidExecute(); } publicclassPlayMusicCommand:ICommand { publicvoidExecute() { Debug.Log("你说家是唯一的城堡,随着稻香一路奔跑"); } } varStart() { varcommand=newPlayMusicCommand(); command.Execute(); } 这里我们定义一个命令接口...

  1wMBnbixARwC   2024年08月07日   67   0   0 游戏开发

前言 Kotlin是由JetBrains推出的一门基于JVM平台的编程语言,引入了许多不同于Java的先进概念以及语法糖,极大地提高了开发人员的编程效率,广受各路Java开发者推崇。但由于NeoForge官方并未就使用Kotlin开发模组提供支持,使得精通Kotlin的开发者未能使用所擅长的语言编写模组而被迫改用Java。幸运的是借助thedarkcolour开发的KotlinForForge前置模组,完全使用Kotlin语言开发NeoForge模组成为了可能。下面简要地就借助该前置模组开发Kotlin语言模组的步骤进行说明。 NeoForgeMDK的搭建 前往NeoForge的示例MDK仓库...

  N1Oh5KZcjLGj   2024年08月07日   74   0   0 游戏开发

原文:Libgdx游戏开发(7)——开始游戏界面实现-Stars-One的杂货小窝 上篇文章也是讲解了如何实现暂停,但实际上,上篇的做法可能不够优雅 因为暂停和游戏界面我们可以分成2个Screen对象,这样只需要监听键盘输入,更改显示不同的Screen对象即可 本文的实现目标: 使用Screen来实现,进入游戏前,先显示一个游戏主界面,按下enter再开始游戏 前置知识 还记得之前例子,都是继承ApplicationAdapter类,并在其的render方法中实现我们的游戏逻辑 由于我们要使用Screen对象,所以我们得使用Game对象类替换我们之前继承的ApplicationAdap...

  fXCoSNADUqrl   2024年08月07日   56   0   0 游戏开发

实现一个日程表服务(crontab),支持 服务启动自动对齐系统时间,以秒为单位检查触发定时任务(task); 以服务(同节点)为单位注册定时任务方式:1)以自然时间字符串方式:2024-01-0100:00:002)以定时间隔方式:每秒/每分/每时/每天/每周/每月/每年 取消指定定时任务; 定时任务触发逻辑支持超时释放; 单例; 对齐系统时间:服务启动时计算当前时间到下一秒的间隔,定时驱动日程表心跳raw_timeout local_,offset=math.modf(skynet.time()) localleftms=100timeout_factor(offset)-到下一秒的间...

  HTNOaXY9Ey0C   2024年08月07日   86   0   0 游戏开发

在C中,字符串string还是一种不可变的引用类型,在对字符串进行操作修改后,原有的字符串内存数据会被回收,代码所拿到的其实是一个新的字符串对象。在需要对字符串进行大规模的修改时,会造成GC性能的损耗,C的标准库中提供了一个StringBuilder类用来弥补string的这个缺点。 点击查看代码 //Unity的API [DefaultMember("Chars")] publicsealedclassStringBuilder:ISerializable { publicStringBuilder(); publicStringBuilder(intcapacity); publicSt...

  NiD7Hlfm86HK   2024年08月07日   58   0   0 游戏开发

一行代码省流:SystemAPI.GetSingleton<GhostRelevancy>() 当你需要按照区域、距离或者场景对Ghost进行筛选的时候,NetcodeforEntities里并没有类似FishNet那样方便的过滤方式,需要获取一个过滤专用的组件:GhostRelevancy。这个结构的内容不多,但功能很强大,但用起来很累,但概念其实挺简单的:在服务器端设置Ghost的GhostId和客户端NetworkId的关联性。有关联就发送,或者有关联就不发送。 在1.2.3版本,它里面只有三个field: GhostRelevancyMode:设置关联性的模式,默认是Di...

  VzZBtB0KXYfE   2024年08月07日   64   0   0 游戏开发

一句话省流:很麻烦也很抽象,能用内置支持的类型就尽量用。 首先看文档。官方文档里一开头就列出了所有内置的支持的类型:GhostTypeTemplates其中Entity类型需要特别注意一下:在同步这个类型的时候,如果是刚刚Instantiate的Ghost(也就是GhostId尚未生效,上一篇文章里说过这个问题),那么客户端收到的Entity值会是Entity.Null。之后就算GhostId同步过来了也不会再刷新。可以说有用,但不那么好用。另外实测除了float2/float3/float4以外,double2/double3/double4也是支持的。 对于其他类型想要让[GhostFie...

  VzZBtB0KXYfE   2024年08月07日   62   0   0 游戏开发

Unity中常见人形动画IK的处理方式 本文将尝试仅使用Untiy内置的Animator来解决常见的几种运动所需的IK。也会给出核心功能的代码实现。 效果一览:b站视频 Unity中人形角色的IK IK(inversekinematics)也就是逆运动学,在工业机器人领域,人们关注的逆运动学问题就是通过末端执行器的位姿来求解对应的关节变量。而在游戏中也类似,我们关注的就是根据末端肢体的位姿来调整身体其它部分的位置,好在Unity已经帮我们解决了这个复杂的求解过程。对于使用Avatar的人形动画,Unity内置的Animator允许我们调整5个部位的IK:头、左手、右手、左脚、右脚(被封印的艾克...

  PfEVswrG0sbF   2024年08月07日   53   0   0 游戏开发

有限状态机,表示有限个状态以及在这些状态之间的转移和动作等行为的处理模型。在任意时刻有限状态机都处于某一特定的状态,并且可以根据当前状态和输入条件(触发事件),从当前状态转移到另一个状态。 核心概念: 实体(Entity):状态机的主体和作用对象,它的状态可以改变 状态(State):实体在某一特定时间点的情况,可分为现态(当前状态)、次态(跳转新状态) 事件(Event):导致状态转换的触发器和条件 动作(Action):状态转换时执行的操作 讨论抽象状态对象的实现模式:将对象的状态分离并封装到专用的状态类,使得对象状态可灵活变化,当状态改变时会相应改变对象的行为。 封装状态类 localE...

  HTNOaXY9Ey0C   2024年08月07日   84   0   0 游戏开发

资源大全 官方资源 源码+例子:ocornut/imgui:DearImGui:Bloat-freeGraphicalUserinterfaceforCwithminimaldependencies(github.com) python绑定:pyimgui/pyimgui:Cython-basedPythonbindingsfordearimgui(github.com) 调试IMGUI自身:调试工具·ocornut/imgui维基(github.com) 在线示例,可定位到代码:ImGuiManual(pthom.github.io) GettingStarted·ocornut/imgu...

  vWa2lMmTbsfJ   2024年08月07日   104   0   0 游戏开发
推荐作者 更多

2023-11-08

2023-11-12

2023-11-21

2023-11-01

2023-11-02

2023-11-02

2023-11-02

2023-11-02

2023-11-01

2023-11-02