Home

UE的gameplay基础

[TOC] Unreal的几个基本概念 GameInstance World Level GameMode HUD Pawn Controller 首先先上一下ue的经典图片,不要求一下子看懂,知道大致流程就好,后面会简单说一下! GameInstance 这里可以理解成游戏的单例,一个游戏里默认就只有一个GameInstance!所有在这个系列里我们可以单做游戏开发的入口! 只是目前而已,后续深入有其他的! GameInstance提供了几个比较实用的可重载的接口! ApplicationXXXDelegate 是UE监听的各种事件的委托;eg:进入后台等! Init 初始化的函数! Shutdown 游戏关闭...

Read more

UE的UMG简单使用

[TOC] 前文已经简单说明了一部分的GamePlay,现在就可以开始教程的第一个demo了! 在demo的第一时间,想到的肯定是UI了~ 简单的基本概念说明 UMG的创建 UMG绑定自定义的类 UMG的创建 在Content中右键,选择Widget Blueprint就可以创建第一个UI界面了!(我们命名为BP_Login_UI) 双击打开后可以自己在ui上随意拼ui了! 上图的左上是UE提供的各种组件(也可以自定义),具体可以去看看官方文档! https://docs.unrealengine.com/4.27/zh-CN/InteractiveExperiences/UMG/ 有了ui,就必然少不了ui动画! 上图中的红框1是创建ui...

Read more

UE入门目录

基本的目录和流程 UE的gameplay基础 UE的UMG简单使用 UE的UMG手柄输入控制 UE的UMG和Control交互 UE的本地化 UE的切换场景 UE的捏脸原理简单介绍 UE的Dedicate Server连接 UE打包环境配置

Read more

Macos下强制前台

Thanks to Mark for his awesome answer! Expanding on that a little: # Look up the parent of the given PID. # From http://stackoverflow.com/questions/3586888/how-do-i-find-the-top-level-parent-pid-of-a-given-process-using-bash function get-top-parent-pid () { PID=${1:-$$} PARENT=$(ps -p $PID -o ppid=) # /sbin/init always has a PID of...

Read more

等值面

[toc] 等值面的基本概念 所谓等值面是指空间中的一个曲面,在该曲面上函数 $F(x, y, z)$ 的值等于某一给定值 $Ft$,即等值面是由所有点$S = {(x, y, z):F(x, y, z) = Ft}$组成的一个曲面。 等值面的生成算法 Cuberille方法 Marching Cubes(MC)方法 Simple Marching Cubes Marching Tetrahedra (MT)方法 剖分立方体方法 Cuberille方法 Marching Cubes(MC)方法 Simple Marching Cubes Marching Tetrahedra (MT)方法 剖分立方体方法 参考 https://www.cnblo...

Read more

unity shadervariant采样的思考

大纲 背景 思路 解决过程 目前结论 背景 项目使用的shader变体特别多!如果是让TA独立处理太耗人力了,所以想想看看有没有其他的方法可以自动化,但是CI的发现很多都需要等unity渲染后反射ShaderUtil.SaveCurrentShaderVariantCollection;想抛弃这样的方案看看有没有其他的! 思路 对shader的要求 自定义的keyword必须是local的 pass中必须声明LightMode 想法中的思路1 获取material的keyword 剔除Global keyword 移除残留的自定义keyword后得到后续使用的keywords(记为k1) 判定shader是否包含Deph...

Read more

unity AssetDatabase.FindAssets使用正则表达式

google上找了一圈,没有找到这样的问题,看到的回答对我都没有啥帮助,就自己写了一个! 这是个小问题,就不废话了! 先看看AssetDatabase.FindAssets的api public static string[] FindAssets(string filter, string[] searchInFolders) { SearchFilter searchFilter = new SearchFilter() { searchArea = SearchFilter.SearchArea.AllAssets }; SearchUtility.ParseSearchString(filter, searchFilter); if (sear...

Read more