avatar
文章
81
标签
33
分类
12

首页
标签
分类
简历
mao的博客
搜索
首页
标签
分类
简历

mao的博客

Unity——热更
发表于2024-12-10|热更
热更主要流程: 1,设置热更配表数据结构 2,生成热更包及热更配表放到服务器 3,下载热更配置表读取需要热更文件 4,下载热更文件 5,游戏中加载热更 其他: 1,自动生成热更包及自动生成热更配置表 2,本地记录下载热更版本,方便比较 3,热更下载中断等处理 4,热更资源下载后校验 5,热更回退 6,资源加密,解密 7,资源解压
lua语法
发表于2024-12-03
lua语法 只记录重点内容,还有和编程语言在常规使用上的不同之处 变量类型Lua 变量有三种类型:全局变量、局部变量、表中的域。 Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。 局部变量的作用域为从声明位置开始到所在语句块结束。 变量的默认值均为 nil。 12345678910111213141516171819-- test.lua 文件脚本a = 5 -- 全局变量local b = 5 -- 局部变量function joke() c = 5 -- 全局变量 local d = 6 -- 局部变量endjoke()print(c,d) --> 5 nildo local a = 6 -- 局部变量 b = 6 -- 对局部变量重新赋值 print(a,b); --> 6 6endprint(a,b) --> 5 6 应该尽可能的使用局部变量,有两 ...
lua——Unity配合Rider使用xlua驱动lua
发表于2024-12-03
xluaxLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。 xLua的突破 xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是: 可以运行时把C#实现(方法,操作符,属性,事件等等)替换成lua实现; 出色的GC优化,自定义struct,枚举在Lua和C#间传递无C# gc alloc; 编辑器下无需生成代码,开发更轻量; 配置去github网站上直接下载项目,不是发布版本 https://github.com/Tencent/xLua 将xlua加入到项目中 压缩包中的Asses文件夹下的内容直接鼠标拖动加入到Unity工程中,在此之前要保证Assets文件夹下不存在同名文件夹,不然运行的时候会直接报错 Rider配置2024通过官网下载到的最新版的rider,具体的安装注册请移步去百度,直接跳过到安装插件,EmmyLua,如下图所示。 最新的版本会自动配置对.lua和.lua.txt的识别 提示 插件中对.lua.txt的使用是因为Unity不能识别.lua 不过一开始对 ...
Unity —— 2D,使用Springs制作交互式的水效果
发表于2024-11-20|Unity2D
交互水使用模拟Springs 和 Sprite Shape 的 Unity 交互式 2D 水。 本教程以类似的方式制作,您可以通过不同的示例逐步了解如何创建 2D 水。 最终效果为玩家跳入水中有水面波纹,游泳的时候水面前高后低 实现思路来源 【【Unity教程搬运】Unity中带有Sprite Shape的2D水教程】https://www.bilibili.com/video/BV1MM4y1r7JU?vd_source=0c56e77847d28781d8cdd412054492d9 这里添加在有玩家游泳的情况下的水体扰动。 2D物理组件Buoyancy Effector 2D浮力效应Buoyancy Effector 2D 浮力效应:在特定区域内没有力度效果。Use Collider Mask 使用碰撞遮罩,默认勾选,碰撞遮罩可以用于忽略某些层的碰撞效果,比如一块玻璃,如果是光Layer就可以穿过去,如果是物体Layer就会反弹。Collider Mask 碰撞遮罩,用于设置哪些层产生碰撞效果。Density 密度,从而影响对撞机的行为:那些有更高的密度,密度较低的浮动,和那些相 ...
UnityShader——水效果实现
发表于2024-11-14|UnityShader
水效果水面颜色渐变效果深度图定义使用深度图来决定水体表面和底部的距,从而改变该部分水体的颜色,达到一个从岸边到深水区的颜色渐变效果 深度图在Shader使用 使用SurfaceShader 深度图获取固定名称 123sampler2D _CameraDepthTexture;//sampler2D_float ,增加精度,预防某些手机精度不够 同时还需要开启摄像机的深度 深度图采样深度图渲染出来后在屏幕空间内,要到屏幕空间进行采样,需要获取到屏幕坐标的UV才能对深度图进行采样 Input结构体中额外定义1float4 proj;//屏幕坐标 属性1234fixed4 _WaterShallowColor;//浅水区的颜色fixed4 _WaterDeepColor;//深水区的颜色half _DeepPower;//水深强度half _TranAmount;//透明度数 顶点着色器123i.proj = ComputeScreenPos(UnityObjectToClipPos(v.vertex));//根据顶点计算屏幕空间,没有齐次裁剪COMPUTE_EYEDEPTH(i.pr ...
UnityShader——中级,Shader动画
发表于2024-11-14|UnityShader
Shader动画种类序列帧动画 对贴图进行采样 滚动动画 顶点动画 最常用的 序列帧动画过程上类似于赛璐璐动画的实现,一张贴图上均匀分布动画的不同帧数,配合缩放和位移进行采样即可 案例12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576Shader "Unlit/024"{ Properties { _MainTex ("Texture", 2D) = "white" {} _HorAmount("HorAmount", float) = 4 _VerAmount("VerAmount", float) = 4 _Speed("Speed" ...
UnityShader——经验
发表于2024-11-13|UnityShader
Shader某些手机端使用samlper2D会造成贴图精度不够,这个时候使用sampler2D_float来提升精度
UnityShader——中级,高级纹理
发表于2024-11-13|UnityShader
高级纹理CubeMap类似于天空盒,正方体的六个面分别渲染 实现方式手动拖拽6张无缝贴图在Assets中中新建一个Cubemap,位置在Legacy/CubeMap中,也可以自行搜索,选择图片之前要先选择清晰度,之后再改无效 程序化生成代码 实际上该操作是以指定物体为中心,将周围常见渲染到cubemap上 123456789101112131415161718192021222324252627282930313233using System;using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;public class RenderCubeMap : ScriptableWizard{ public Transform renderPos; public Cubemap cubemap; [MenuItem("Tools/3D Render Cubemap")] public static ...
UnityShader——中级,LightMap
发表于2024-11-12|UnityShader
LightMap渲染类型 Lighting设置在比较新的版本中,Lighting中的设置位置发生的变化,需要通过Windows-》Rendering进入,按照图示前往 skybox:环境光是天空盒的颜色 Gradient:对天空,中间,大地的颜色做了一个详细的区分 color:单一颜色代表环境光 反射光的选项 实时光和烘焙光各自的控制 实时光照GI启用在2023.2版本中,一个场景需要新建一个LightAssets,然后才能对这些数据进行修改 将场景中的需要进行实时光照贴图渲染的游戏对象在设置窗口右上角的Static选项框中勾选下图所示的左侧有对钩的选项就可以启动光照贴图,然后再去Lighting窗口中点击最下面的 Generate Lighting选项就能生成实时光照贴图,需要注意场景中的需要进行实时光照贴图的灯光的选项也应该是RealTime 实时光照贴图有一定的精度区分,在Lighting的设置中,下图红框所所示的数字就是实时光照贴图的精度,这个值越大,贴图越精细 参数 Directional Mode:直射模式 Albedo Boost:间接光照的强度 ...
UnityShader——中级,SurfaceShader
发表于2024-11-08|UnityShader
Unity,SurfaceShader介绍 Surface Shader和CG其他部分一样,代码也是要写在CGPROGRAM和ENDCG之间。但区别是,它必须写在SubShader内部,而不能写在Pass内部。Surface Shader自己会自动生成所需的各个Pass。由上面的编译格式可以看出,surfaceFunction和lightModel是必须指定的。 surfaceFunction通常就是名为surf的函数(函数名可以任意),它的函数格式是固定的: void surf (Input IN, inout SurfaceOutput o) void surf (Input IN, inout SurfaceOutputStandard o) void surf (Input IN, inout SurfaceOutputStandardSpecular o) lightModel也是必须指定的。由于Unity内置了一些光照函数——Lambert(diffuse)和Blinn-Phong(specular),因此这里在默认情况下会使用内置的Lambert模型。当然我们也可以自定义 ...
123…9
avatar
mao
文章
81
标签
33
分类
12
Follow Me
公告
This is my Blog
最新文章
Unity打包后窗户化切换2025-01-11
InputSystem按键重绑定2025-01-06
Unity —— 2D,雨水2024-12-31
C++ 事件系统使用手册2024-12-26
游戏事件池实现解释文档2024-12-26
分类
  • Alogrithm1
  • C++5
  • UI技术1
  • Unity13
  • Unity2D4
  • UnityShader16
  • 图形接口1
  • 左神算法4
标签
功能 经验 栈 语言知识 物理 解法总结 Plugins 特性 OpenGl alogrithm AI 2D渲染 组件 UI 性能优化 特效 位运算 渲染 Unity UI 字符串 二分查找 C++ string C# 热更 数组 Unity 枚举 github Pixiv 题目 动态规划 lua
归档
  • 一月 20252
  • 十二月 202411
  • 十一月 202410
  • 十月 202410
  • 九月 202430
  • 八月 202413
  • 七月 20245
网站资讯
文章数目 :
81
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By mao
框架 Hexo|主题 Butterfly
搜索
数据库加载中