- 博客(159)
- 资源 (69)
- 收藏
- 关注
原创 MagicaCloth2中文文档
BoneCloth是一种基于Unity的变换结构执行交叉模拟的机制。非常适合摇曳头发和配饰,骨头内置于网眼中。通过操纵变换来表达摇晃由于处理负荷低,它可以大量使用。在这里,我将以示例中的 UnityChanKAGURA 腰带为例来解释设置。首先,为您的角色添加一个魔术布组件。选择一个字符以在“层次结构”窗口中打开右键单击菜单。从菜单中选择创建其他/魔术布2/魔术布,如下所示:这将生成一个 MagicaCloth 游戏对象。
2024-05-27 20:56:07
1911
原创 Unity-UGUI优化策略
界面目录导航、策划界面回退需求造成界面套娃问题,夹带一系列层级问题,应该和策划进行友好沟通,避免界面不合理的出栈入栈规则。尽量减少同屏 半透明物体渲染。
2023-08-10 19:10:34
594
原创 Unity-ECS相关学习资源
烟雨迷离半世殇 Unity DOTS:入门简介(ECS,Burst Complier,JobSystem)放牛的星星-Unity手游实战:从0开始SLG——ECS战斗(一)ECS设计思想UWA DOTS-ECS系列课程
2023-07-08 13:27:33
509
原创 Lua提示全局变量访问错误
_G:指向全局table设置一下 _G的元表和元方法,通过重写 __newindex和 ___index元方法的方式来做到禁止新建全局变量和访问不存在的全局变量时提示错误。setmetatable( _G, { __newindex = function(_, key) print("attempt to add a new value to global, key: " .. key) end, __index =
2022-01-07 17:39:44
1216
原创 Unity集成InjectFix对C#代码热修复
文章目录InjectFix介绍InjectFix使用说明[IFix.Patch][IFix.Interpret][IFix.CustomBridge][IFix.Filter]项目中使用接入遇到的问题记录赞赏与支持InjectFix介绍作用: 用于修复线上C# bug流程: InjectFix包括Inject和Fix两个部分,发包的时候对需要修复的类进行插桩(Inject)处理,线上版本要写好加载热更补丁包的逻辑,通过生成Patch补丁进行资源热更的形式进行修复线上bug。原理: InjectFi
2021-12-30 14:31:33
7163
4
原创 Python之GUI组件Tkinter控件大合集
# -*- coding: utf8 -*-'import tkinter as tkfrom tkinter import Label, fontimport tkinter.messagebox as messageboxfont_str = ('Arial', 20)def InitWindow(_window): global window window = _windowdef DrawTest(): DrawLabel() DrawButto
2021-12-13 18:55:45
2037
原创 Unity-SRP之DrawCall
ShaderShader是运行在GPU上的一种处理图像信息的程序。要在哪里绘制,如何绘制通常由Shader决定。着色器有很多可编程的阶段,比如顶点着色器和片元着色器。这些着色器的可编程性在于我们可以使用一种特定的语言来编写程序,如同我们用C#来编写游戏逻辑一样。着色语言有三种,微软DirectX的HLSL(High Level Shading Language)、OpenGL的GLSL(OpenGL Shading Language)和NVIDIA的CG(C for Graphic)。这些语言会被编译成
2021-10-13 11:54:37
1176
4
原创 Unity-SRP之自定义渲染管线
标题自定义渲染管线前置工作在PlayerSetting中奖颜色空间Color Space由Gamma空间换成Linear线性空间在Window->PackageManager中安装Core RP Library包。这个包由Unity封装了底层C++渲染接口,还包含一些着色器文件,后面会依赖这个包做拓展功能。创建管线资产和实例using UnityEngine;using UnityEngine.Rendering;[CreateAssetMenu(menuName = "Ren
2021-09-24 15:35:31
521
原创 屏幕后处理效果
屏幕后处理效果(screen post-processing effects) 是游戏中实现屏幕特效的常见方法建立一个基本的后处理脚本系统调整屏幕的亮度、饱和度和对比度边缘检测高斯模糊Bloom效果(未完待续)
2021-09-07 22:06:13
988
6
原创 Unity实现Image透明度渐变(Graphic)
实现原理通过OnPopulateMesh函数修改UI传入的顶点数据(color属性中的Alpha值)UI传入的四个顶点如下:OnPopulateMesh函数当一个UI元素生成顶点数据时会调用OnPopulateMesh(VertexHelper vh)函数,我们可以在这个函数中修改顶点的数据或者获取顶点的数据。代码实现FadeImage :using UnityEngine;using UnityEngine.UI;public enum FadeMode{ LeftTORig
2021-08-09 11:46:15
4932
3
原创 UGUI源码研究
UGUI源码地址从github上下载ugui源码压缩,一把梭解压,包含UnityEngine.UI和UnityEditor.UI两部分,即引擎运行和编辑器代码,可根据文件夹分类进行阅读代码。根据功能再细分如下:EventSystem、CanvasUpdateSystem、LayoutSystem、Graphic、Selectable、ComponentOK,扯犊子完毕,接下来带大家分析UGUI源码UGUI总览图(未完待续)...
2021-05-07 22:41:40
785
2
原创 UGUI绘制不规则图形
需求: 游戏中经常有动态绘制不规则图形的需求,比如雷达图,折线图填充等等方案: 继承UGUI的MaskableGraphic类,重写OnPopulateMesh方法,进行图形的绘制,绘制的原理是三角面的绘制(即三个顶点绘制一个三角面),因此在传顶点坐标参数的时候,要注意覆盖到每一个三角面代码如下:using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class UIDrawImage :
2021-04-20 19:39:45
1067
原创 XLuaHotFix研究
官网文档1.HotFix配置1、打开该特性添加HOTFIX_ENABLE宏(各个平台)2、执行XLua/Generate Code菜单。3、注入,构建手机包这个步骤会在构建时自动进行,编辑器下开发补丁需要手动执行"XLua/Hotfix Inject In Editor"菜单。打印“hotfix inject finish!”或者“had injected!”才算成功,否则会打印错误信息。错误: please install the Tools解决:未找到XLuaHotfixInject.e
2021-03-30 21:22:49
1158
原创 XLua性能分析工具
XLua中内置了两个性能分析工具: 函数调用时常分析工具 和 内存泄漏定位工具函数调用时长分析工具典型使用案例:local profiler = require 'perf.profiler'profiler.start()print("xxx")// ...print(profiler.report())profiler.stop()api很简单,就三个,start和stop都是无参数,也很好理解,分别是统计开始以及结束。在start以及stop之间可以多次调用report(也可以考
2021-03-27 17:28:12
1674
原创 Unity UGUI折线图
using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using DG.Tweening;public class UILineImage : MonoBehaviour{ public float[] _datas;//数据 public float _lineWidth = 3;//线宽 public Image _linePrefab;//线Prefab public RectTransfo
2020-12-15 00:10:12
905
原创 unity将指定的UI置灰
shader代码Shader "UI/UIGrey"{ Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stenc
2020-12-06 21:15:50
1698
转载 Unity 打包iOS 删除 UIWebView引用
检测ios工程中是否有引用UIWebView1.打开终端,cd + 把项目的工程文件所在文件夹拖入终端(即 得到项目的工程文件所在的路径)2.输入以下命令(注意最后有个点号,而且点号和 UIWebView 之间必须有一个空格):grep -r UIWebView .3.以上操作都正确的话,会马上出现工程中带有 UIWebView 的文件的列表(包括在工程中无法搜索到的 .a 文件中对UIWebView 的引用)Unity 打包iOS 删除 UIWebView引用...
2020-11-03 17:01:39
393
原创 Unity面试中的一些问题
怎样在UI上面显示3D物体方法一:新建一个摄像机和一个Texture,并且将Texture设置到Camera.targetTexture和RawImage.tagetTexture,3D物体设置单独的layer,该摄像机只剪裁这个layer,并且摄像机和3D物体调整一个合适的位置问题:会产生透明混合问题方法二:直接将3D物体拖入到ui节点下面(比如一些特效),但会产生遮挡关系,这时候需要改变3D物体的Render的sortorder或者添加Cavas、SortOrder等组件来得到正确的遮挡关系问题
2020-11-01 21:11:41
352
原创 游戏客户端登陆流程
游戏登陆流程#mermaid-svg-Vyf77TIjmmcATfDp .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Vyf77TIjmmcATfDp .label text{fill:#333}#mermaid-svg-Vyf77TIjmmcATfDp .node rect,#mermaid-svg-Vyf
2020-10-31 16:20:07
2388
原创 UnityShader-让画面动起来
UnityShader内置的时间变量名 称类 型描 述_Timefloat4t是自场景加载开始所经过的时间,4个分量分别是(t/20,t,2t,3t)_SinTimefloat4t是时间的正弦值,4个分量的值分别是(t/8,t/4,t/2,t)_CosTimefloat4t是时间的余弦值,4个分量的值分别是(t/8,t/4,t/2,t)unity_DeltaTimefloat4dt是时间增量,4个分量的值分别是(dt,1/dt,smoothDt,1
2020-10-21 20:45:56
678
1
原创 少年中国说
作词:梁启超少年智则国智少年富则国富少年强则国强少年自由则国自由少年智则国智少年富则国富少年强则国强少年自由则国自由红日初升 其道大光河出伏流 一泻汪洋潜龙腾渊 鳞爪飞扬乳虎啸谷 百兽震惶少年自有少年狂身似山河 挺脊梁富则国富敢将日月 再丈量今朝唯我少年 郎敢问天地 试锋芒披荆斩棘 谁能挡不负年少世人笑我 我自强不负年少少年智则国智少年富则国富少年强则国强少年自由则国自由:干将发硎 有作其芒天戴其苍 地履其黄纵有千古 横有八荒前途似海 来日方.
2020-10-21 15:21:26
504
1
转载 UnityShader常见指令、标签函数
1.Properties块中的特殊命令4.三、Pass块中的指令5.Pass块中的Tag标签6.#prama指令7.Unity内置函数8.Unity内置变量9.语义10.宏定义1.Properties块中的特殊命令命令 参数 说明[Header(test)] 括号内即为头标题的显示文字 不要加引号,不支持中文[NoScaleOffset] 隐藏贴图的Tilling和Offset选项[Toggle] 模拟开关,0为假,1为真,同[MaterialToggle]2.SubShade
2020-10-21 10:10:20
839
1
原创 临江仙·夜饮东坡醒复醉
临江仙·夜饮东坡醒复醉【作者】苏轼 【朝代】宋夜饮东坡醒复醉,归来仿佛三更。家童鼻息已雷鸣。敲门都不应,倚杖听江声。长恨此身非我有,何时忘却营营。夜阑风静縠纹平。小舟从此逝,江海寄余生。...
2020-10-19 15:46:33
327
原创 走马
走马作词 : 陈粒窗外雨都停了屋里灯还黑着数着你的冷漠把玩着寂寞电话还没拨已经口渴为你熬的夜都冷了数的羊都跑了一个两个嘲笑我笑我耳朵失灵的笑我放你走了走了走了走了路人穿街过河好景只有片刻森林都会凋落风吹走云朵你留给我的迷离扑朔岁月风干我的执着我还是把回忆紧握太多都散落散落太多好难过难过时你走了走了走了走了过了很久终于我愿抬头看你就在对岸走得好慢任由我独自在假寐与现实之间两难过了很久终于我愿抬头看你就在对岸等我勇敢你还是我的我的我的你看浪漫
2020-10-19 10:18:35
423
3
原创 UnityShader-透明效果
透明度测试透明度测试: 只要一个片元的透明度不满足条件(通常小于某个值),那么他对应的片元就会舍弃。被舍弃的片元不会进行任何处理,也不会对颜色缓冲产生任何影响;否则,就会按照普通的不透明物体的处理方式来处理它。关键函数:clip,clip(float4 x)、clip(float3 x)、clip(float2 x)、clip(float x),x的任何一个分量为负数就会舍弃当前像素的输出颜色。测试代码如下:Shader "cc/shader10" { Properties {
2020-10-16 17:01:27
471
原创 UnityShader-可编程渲染管线
#mermaid-svg-Ua40NbyOE7j0Kvjn .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Ua40NbyOE7j0Kvjn .label text{fill:#333}#mermaid-svg-Ua40NbyOE7j0Kvjn .node rect,#mermaid-svg-Ua40NbyOE7
2020-10-16 11:12:59
228
原创 UnityShader-基础纹理
单张纹理单张纹理: 使用一张纹理来代替物体的漫反射颜色,通过tex2D内置函数来对纹理进行采样。关键代码如下:fixed3 albedo = tex2D(_MainTex, i.uv).rgb * _Color.rgb;Shader "cc/shader9" { Properties { _Color ("Color Tint",Color) = (1,1,1,1) _MainTex("Main Tex",2D) = "white"{} _Specular
2020-10-16 10:45:29
201
原创 UnityShader-基础光照模型
标准光照模型自发光: 描述给定一个方向时,模型表面会向这个方向发射多少辐射量高光反射: 描述光线从光源照到物体表面时,会向完全镜面反射方向发射多少辐射量漫反射: 描述光线从光源照到物体表面时,会向每个方向发射多少辐射量环境光(ambient): 描述所有其他的间接光照
2020-10-13 16:05:31
1031
原创 UnityShader-顶点片元着色器
一个简单的顶点片元着色器Shader "cc/shader1"{ Properties{ } SubShader{ Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag struct a2v{ float4 vertex : POSITION;
2020-10-10 17:39:06
636
2
原创 沉默是金
沉默是金作词 : 许冠杰夜风凛凛 独回望旧事前尘是以往的我 充满怒愤诬告与指责积压着满肚气不愤对谣言反应甚为着紧受了教训 得了书经的指引现已看得透 不再自困但觉有分数不再像为往那般笨抹泪痕轻快笑着行冥冥中都早注定你富或贫是错永不对真永是真任你怎说安守我本份始终相信沉默是金是非有公理 慎言莫冒犯别人遇上冷风雨休太认真自信满心里 休理会讽刺与质问笑骂由人 洒脱地做人受了教训 得了书经的指引现已看得透 不再自困但觉有分数不再像为往那般笨抹泪痕轻快笑着行冥冥中都
2020-08-29 15:19:58
221
原创 极光推送Unity-Android-API
Android API停止与恢复推送服务清除通知设置允许推送时间设置通知静默时间申请权限接口(用于 Android 6.0 及以上系统)通知栏样式定制设置保留最近通知条数本地通知获取推送连接状态动态设置channel通知栏被打开设置地理围栏监控周期开启和关闭省电模式停止与恢复推送服务StopJPush()调用了该 API 后,JPush 推送服务完全被停止。具体表现为:JPush Service 不在后台运行;收不到推送消息;极光推送所有的其他 API 调用都无效
2020-08-24 23:18:57
489
原创 unity动画特效不受timeScale影响
跑酷类游戏会用TimeScale来控制游戏的节奏,当timeScale不为1时,动画和特效播放会受到影响,因此需要写一些脚本去控制动画特效的播放以下是ParticleSystem的控制类,后续补充Animation和Animator的思路: Time.unscaledDeltaTime 不受timeScale影响扩展: 协程yield return new WaitForSeconds也会受到影响,可以改为使用yield return new WaitForSecondsRealtimeParti
2020-08-09 21:36:40
2048
原创 unity实现打字机效果
unity实现打字机效果实现思路: 做一个定时器,每次达到时间更新一次Textusing UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(Text))]public class TypewriterEffect : MonoBehaviour{ private float intervalTime = 0.2f;//打字时间间隔 private string words;//保存需要显示的文字 private bool
2020-08-09 17:58:11
1378
1
原创 面试算法题
1.数组奇偶数分离/// <summary>/// 奇偶分离/// </summary>void JiOuFenLi(int[] data){ if (data == null) return; int left = 0; int right = data.Length - 1; while (left < right) { while (data[left] % 2 != 0 && left < right) left
2020-08-04 10:11:39
163
原创 同时滑动父节点的ScrollRect和子节点的ScroollRect
策划需求: 滑动大的切页类型(横向)的同时,需滑动子切页中的物品(纵向),但是同一时间只会响应一个以下代码可以实现这个需求,此需求设计的缺点是物品Item不能得到复用,因为横向切页的时候可以看到两个切页的物品,但是子ScrollView可以做一个循环列表的功能,有好的想法请在下方留言。using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;using UnityEditor;/// <summary>
2020-08-02 20:15:42
302
1
原创 lua deferred延迟对象
定义:“延迟”对象,游戏中需要异步或者同步操作中不能立即得到结果,需要预定义一个结束的回调函数,等待结果后执行回调接口函数:resolve(callback) reject(callback) catch(callback) finally(callback)使用场景:异步向服务器请求游戏数据,从ab包中动态加载一个预制 等local M = {}local deferred = ...
2020-07-19 14:35:29
449
原创 CoroutineMgr协程管理器
管理游戏中所有的协程CoroutineMgr = {}local datas = {}--- 等待下一帧function CoroutineMgr.WaiteFrame() coroutine.yield()end--- 等待一个时间function CoroutineMgr.WaitTime(t) while t > 0 do t = t...
2020-07-19 14:35:10
250
原创 unity-ios包支持ipv6OC代码
ios包提升必须支持ipv6,代码如下:BundleId.h@interface BundleId : NSObject+(NSString *)getIPv6 : (const char *)mHost :(const char *)mPort; @endBundleId.m:#import "BundleId.h"#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h>#inc
2020-06-24 19:43:29
382
LeapMotion Unity3d C#高精度手控制支持二次开发例程
2018-12-24
Unity FairyGUI 曲面UI 多功能界面 界面demo最全
2018-11-28
LCPrinter - Simple Texture Printer
2019-01-23
Unity着色器和屏幕特效开发秘籍 [美]Kenny Lammers著 晏伟 译
2019-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人