12 2022 档案
摘要:一、前言 最近在开发时,在同一个解决方案下,需要使用另一个项目产生的动态库,每次都要手动移动,然后写了一个 .bat 脚本,感觉也挺麻烦,后面了解到这个 后构建事件,解决了这个问题 二、使用 Post-Build Event ✨参考文档 echo F | xcopy [选项] [源文件] [目标文件
阅读全文
摘要:一、前言 最近在写项目的时候,发现随着项目越来越大,编译需要的时间也越来越长, 然后使用了预编译头,时间减少了很多! 这个谁用谁知道,很 Nice! 1. 预编译头的原理 简单来说就是将一些你认为不经常修改的头文件用一个头文件包含在一起,然后设置编译器编译它,生成一个 .pch 二进制文件,之后若其
阅读全文
摘要:一、前言 在 SDL2 中,常用的有两种方式获取时间和控制帧率 1. SDL_GetTicks64() 2. SDL_GetPerformanceCounter() 和 SDL_GetPerformanceFrequency() 二、使用 SDL_GetPerformanceCounter 示例代码
阅读全文
摘要:一、相机跟随 1. 安装 Cinemachine 插件 2. 在 Hierarchy 面板中右键创建 Virtual Camera 3. 设置 Virtual Camera 参数 角色的中心默认在脚那里,如果想摄像机看中间一点,可以在角色上创建一个子物体,挪动你想要看的位置,例如这里创建了一个 Lo
阅读全文
摘要:在上一卷使用了 UnityEvent,还用了序列化,在编辑器界面拖拽绑定事件对象,不太好维护,本卷换一种方式实现,先看 MouseManager.cs 中的更改 using System; public event Action<Vector3> m_OnMouseClicked; // 鼠标点击事
阅读全文
摘要:创建一个空物体用来管理鼠标脚本 添加脚本 MouseManager.cs 示例代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; [S
阅读全文
摘要:一、使用 Navigation 打开 Navigation 窗口 地面选择静态的(Navigation Static) 先处理地面,地面是可以行走的 (Walkable),树木占用的地方是不能行走的 调整最大能爬的斜坡角度为 30°,这里先烘培(Bake)一下 处理树木(Not Walkable)
阅读全文
摘要:一、安装 Polybrush 导入样例 我新建了一个新文件夹 Plugins 用来管理 打开 Polybrush Window 二、使用 Polybrush 1. 选中物体,使用第一个工具,会发现可以显示顶点,可以改变网格,例如我们可以上下拖拽地面改变地形 正常左键点击鼠标拖拽向上凸起,按住 Ctr
阅读全文
摘要:一、报错 二、解决 删除 项目目录下的 Packages/manifest.json 注意:删除这个文件后,之前项目下载的所有插件都没有了,需要重新下载! 如果不行就重新登陆 UnityHub The End.
阅读全文
摘要:一、前言 很多刷题平台都支持包含该头文件 <bits/stdc++.h> 该头文件包含了很多常用库,基本上刷题的时候包含这一个库即可,对于大家刷题的时候是比较节省时间的 是 MinGW 自带的,Visual Studio 的 MSVC 可能需要添加一下 2. Visual Sutdio 2019 添
阅读全文
摘要:一、更换默认天空盒 1. 隐藏 Scene 天空盒 2. 导入天空盒素材 选择素材的时候看是否支持 URP 下载导入素材即可 有时候下载连接有问题,选择在 Unity 中打开就可以... 默认导入应该也是紫色或其他,重新把资源转换一下 URP 即可 3. 更换天空盒 可以调节一下属性 二、搭建场景
阅读全文
摘要:一、创建 3D (Core) 项目 1. 安装 Universal RP 2. 创建 New Universal Render Pipeline Asset 3. 项目设置 4. 导入素材 在选择的素材时,因为我们的项目 使用了 URP,所以素材应该也要支持 URP (Universal RP) 或
阅读全文
摘要:✨✨目录 一、入门卷 二、杂项卷 三、最后 一、入门卷【下卷】 回到顶部 简单 UI 主菜单 暂停菜单 安卓测试游戏(触控操作) 游戏生成 [入门卷] 12. 简单 UI A. 添加 Text 这里使用的是旧版本 Text 在之前的画布上创建文本 更改属性,这里设置锚点,适应不同分辨率 调整文本居中
阅读全文
摘要:✨✨目录 一、入门卷 二、杂项卷 三、最后 一、入门卷【中卷】 回到顶部 收集物品(使用动画帧事件) 相机大小 Size 调节 简单敌人系统 简单音效 简单光照 [入门卷] 7. 收集物品 这一节介绍简单的交互系统,收集物品 使用上卷的知识,我们创建了 cherry 的动画,记得 Pixels Pe
阅读全文
摘要:一、前言 在使用 Unity 自带的 Animator 时偶然出现的问题,有一个动画是通过 Any State 传递的,然后碰到了一直卡在第一帧的情况,其实是一个设置问题,需要把 Can Transition To Self,可能也有其他原因导致类似问题的发生,不过感觉这应该是新手常碰的问题了~ 二
阅读全文
摘要:一、前言 很多时候你的 Unity 版本换了,可能需要打开一个老一点的项目,或者朋友发你的项目,但是你发现版本不一样 这样其实是会导致很多问题的,比如场景打开不正确,甚至导致项目不能正常运行 二、如何查看版本? 进入项目目录 在 ProjectSettings 文件夹中会有一个 ProjectVer
阅读全文
摘要:✨✨目录 一、入门卷 二、杂项卷 三、最后 一、入门卷 回到顶部 前言 准备资源 Tilemap 地图布置,刚体组件 角色移动跳跃脚本,以及刚体,碰撞器等组件添加(包含射线检测,解决手感问题) 角色添加动画逻辑,以及动画组件(包含动画状态机设置) 相机跟随 Player 移动(简单代码实现) 游戏场
阅读全文
摘要:一、前言 到目前为止,我们只处理视频和输入。大多数制作的游戏都需要某种声音,在这里我们将使用 SDL_mixer 为我们播放音频。 ✨官网链接 ✨参考文档 下载方式和之前一样 本卷使用资源 🚀点击下载 二、使用 SDL_mixer 播放音乐和音效 // Init if (SDL_Init(SDL_
阅读全文
摘要:一、前言 本卷介绍 SDL 提供的计时功能 二、添加计时器 // 计时器 SDL_TimerID id = SDL_AddTimer(1000, [](Uint32 interval, void* param) { std::cout << "SDL_Timer: passed 1 second!"
阅读全文
摘要:一、前言 从本卷开始,代码做了一定的简化,去掉了不必要的封装,尽量每个模块以讲述功能为主,让示例更加浅显易懂 本卷介绍使用 SDL_ttf 输出中文,以及如何设置中文标题。 二、SDL_ttf 输出中文 本卷使用的中文字体是微软自带的黑体 simhei.ttf // 【这里设置 utf-8 字符集】
阅读全文
摘要:一、前言 与按键一样,SDL 具有事件结构来处理鼠标事件,如鼠标运动、鼠标 按钮按下,鼠标按钮释放。 二、鼠标事件 在上一卷的基础上添加一些代码即可 int main(int argc, char* argv[]) // 必须要填写此参数,不然会出现链接错误 { // 初始化 SDL if (Ini
阅读全文
摘要:一、前言 使用 SDL 呈现文本的一种方法是使用扩展库 SDL_ttf。 SDL_ttf 允许您从 TrueType 字体创建图像,我们将在此处使用这些字体来创建纹理 从字体文本。 ✨扩展库连接 ✨下载 配置方式跟之前讲解 SDL 和 SDL_image 库的配置基本类似 ✨官方文档 二、使用 SD
阅读全文
摘要:一、前言 SDL 2 的硬件加速纹理渲染还使我们能够进行快速的图像翻转和旋转。 本卷,我们将使用它来制作箭头 纹理旋转和翻转。 使用资源 二、旋转和翻转纹理 在这里,我们将向纹理类添加更多功能。渲染函数现在添加了旋转角度,指向某点旋转纹理,然后最后是 SDL 翻转枚举。 与剪切矩形一样,我们为参数提
阅读全文
摘要:一、前言 简而言之,动画只是显示一个又一个图像以创造运动的错觉。 在这里,我们将展示使用不同的精灵表片段来制作简单的动画。 // 创建窗口渲染器,设置硬件加速和垂直同步 gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERA
阅读全文
摘要:一、前言 这一节比较简单,介绍一下如何设置纹理颜色和透明度 主要使用两个函数,可以去官网文档看看,应该很好使用,这里也给出例子 SDL_SetTextureColorMod ✨参考链接 SDL_SetTextureAlphaMod ✨参考链接 二、设置纹理颜色和透明度 本卷使用纹理资源 本卷在上一卷
阅读全文
摘要:一、前言 有时您只想渲染纹理的一部分。很多时候,游戏喜欢将多个图像保留在同一个精灵表上,而不是拥有一堆 纹理。使用剪辑渲染,我们可以定义要渲染的纹理的一部分,而不是渲染整个东西。 二、纹理类 // 纹理类 class Texture { private: int m_Width; int m_Hei
阅读全文
摘要:一、前言 在屏幕上渲染多个图像时,通常需要具有透明背景的图像。幸运的是,SDL 提供了一种简单的方法来执行此操作: 颜色键控。其实现在这种用的少,纹理也能自动处理 PNG 的透明部分,不过作为基础知识,可以了解一下 二、使用颜色键控 (Color Keying) 本卷使用纹理资源 /** * @br
阅读全文
摘要:一、前言 SDL2.0 还允许使用视口控制在屏幕上的渲染位置,我们可以使用视口来创建子屏幕。 有时,您只想为小地图之类的内容渲染屏幕的一部分。使用视口,您可以控制在屏幕上的渲染位置。 二、使用视口 // rendering // 设置渲染器绘制颜色(黑色) SDL_SetRenderDrawColo
阅读全文
摘要:一、前言 除了新的纹理 API,SDL 还在其渲染 API 中提供了新的基元渲染调用。 因此,如果您需要渲染一些基本形状,并且不想为它们创建其他图形,SDL 可以为您节省精力。 // 加载媒体资源,这里不加载媒体资源 //if (!LoadMedia()) // std::cout << "[Err
阅读全文
摘要:一、前言 最初我们使用的是 SDL_Surface 进行绘图的,这个其实是 SDL1 主要使用的,之后因为各种原因到 SDL2 的时候,就用的不太多了,但还是要了解,有些需求还是需要使用这个进行绘图的 SDL2 的一个主要新增功能是纹理渲染 API。提供了快速、灵活的基于硬件的渲染。 当我们处理需要
阅读全文
摘要:一、前言 在这里,我们先介绍优化加载表面,然后将使用 SDL_image 扩展库来加载 png 图像。 二、优化加载表面 1. 问题 加载位图时,它通常以 24 位格式加载,因为大多数位图都是 24 位。默认情况下,大多数(如果不是全部)现代显示器不是 24 位。如果我们对图像进行 位块传输 这是
阅读全文
摘要:一、SDL事件系统介绍 我们之前在代码中有声明 SDL_Event 类型的变量用来接收事件 事件可以是 按键事件、鼠标事件、摇杆事件、窗口事件等 我们最开始使用的事件是 SDL_QUIT,该事件在用户点击窗口关闭按钮时触发 1. 事件队列 在主循环的顶部,我们有事件循环。这样做的目的是继续处理事件队
阅读全文
摘要:一、前言 本节介绍如何加载 BMP 图片,并且实现缩放效果 然后代码在上一小节的基础上稍微封装了一下,但是考虑到并不是真正的项目,所以并不会弄的太复杂,我们还是以解释每个功能以及效果的实现为主 二、加载 BMP 图片 使用函数:SDL_Surface* SDL_LoadBMP(const char*
阅读全文
摘要:一、前言 之前我们已经设置了 SDL,是时候制作一个在屏幕上呈现四边形的 SDL 图形应用程序了。 二、第一个 SDL 窗口 我们在上一卷的基础上编写,我会对重要的地方做出适当的解释。 // 使用 SDL 和 iostream #include <SDL.h> #include <iostream>
阅读全文
摘要:一、前言 这段时间正好使用 SDL,所以打算开一个新的系列,作为经验分享 —— SDL 游戏编程入门。 这也是 AnnihilateSword 在此站的第一个系列,文中可能有许多不足,还请多多包涵,如能斧正,那再好不过。 1. 使用工具: 语言:C++ 编辑器:Visual Studio 2019
阅读全文

浙公网安备 33010602011771号