自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (8)
  • 收藏
  • 关注

原创 Unity C#的线程锁(lock)简述,以及案例

lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。在多线程环境下,该代码块操作某个共享资源时执行顺序是无序的,这也是为什么unity引擎本身采用单线程的原因,简单来说多线程环境下,你不知道下一个要执行的函数是那一个。通过使用lock关键字,我们可以创建一段互斥代码块,同一时刻只有一个线程能够执行这段代码,从而避免了竞态条件和其他并发问题。

2024-05-08 09:22:00 391

原创 C# 实现WebSocket服务端代码用于Unity WebGL通信

一般我们在做展厅项目的时候,交互方式和常见的数字孪生项目是不一样的,常见的数字孪生是通过鼠标点击来进行操作,但是在展厅中屏幕和主机物理距离是很远的,然后无线鼠标操作受到场地影响又影响用户的体验。如果移动端要控制多个大屏还要实现消息的广播,将移动端收到的消息广播给所有的客户端,客户端再根据收到的消息再处理相应的逻辑。使用移动端控制我们的展厅必然会涉及到服务端和客户端通信的问题。我们的实现思路如下。首先服务端要开启一个websocket监听,完成一个收消息和发消息的基本函数。

2023-07-07 11:23:26 973

原创 Unity Canvas不同模式下实现UI追随物体

在Canvas不同渲染模式(RenderMode)下实现UI跟随3D物体功能。

2023-06-20 10:48:27 1304

原创 Unity WebGl和前端(Angular)相互调用(含跨域问题)

在Unity官方文档中就已经介绍了Unity和JS相互调用的问题,但是我们实际的应用中往往是使用iframe来展示WebGL。这样不但是webgl和js相互调用的问题,还包含了iframe跨域的问题。我们的项目中前端使用的是angular框架,就以angular为基础来说一下这个问题,当然vue的前端框架应该都一样的原理。首先说一下unity和js相互调用的问题。

2023-05-29 14:57:42 1862 1

原创 HoloLens 2 部署问题(Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cpp)

Visual Studio 2022 17.4更新在他们的标准c++头文件中引入了一个突破性的变化,如果你升级到这个版本的Visual Studio,会导致部分IL2CPP运行时无法编译.发现怎么打包部署都不行因为国内论坛根本没有这个问题的解决方法,还是得考老外解答;在打包生成的项目中找到 sparseconfig 这个文件。

2023-05-17 17:14:23 470

原创 Unity WebGL焦点丢失问题(保持在后台运行)

unity打包成webgl以后会发现,如果点击了别的地方webgl就会停止运行,像是卡住了一样。需要再次点击屏幕才会运行。但是勾选上以后的意思是保持unity在后台运行,性能消耗会有点大,看情况取舍吧。解决方法:勾选上Run In Background。

2023-05-12 11:48:04 748

原创 Unity WebGL监听是否进入全屏模式

全屏一开始使用webkitRequestFullScreen,直接控制全屏发现,当点击全屏后,画面出现拉伸,需要点击一下才会回复正常的画面。第二个问题,做好js调用unity中的代码,控制title的显示和隐藏,然后增加这个方法就可以监听浏览区是否进入全屏状态。今天遇到一个需求打包成WebGL之后要当做一个iframe,嵌入到别的网页中,其中遇到两个难题。2.全屏的时候使用unity中的title,非全屏的时候要使用网页本身的title。修改打包后的CSS文件,将全屏按钮移动到画面中。

2023-04-20 14:25:52 641

原创 Unity中使用WebSocket (ws://)的方法

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

2023-03-24 14:16:28 11638 4

原创 Unity 爬坑日记(遇到小坑就记录一下)

unity爬坑日记,遇到莫名其妙的报错或者问题就记录一下。

2023-01-11 08:49:56 1552

原创 Go引入Gin遇到的问题(package io/fs is not in GOROOT (C:\Go\src\io\fs))

在网上找了半天才发现,io/fs 只在golang 1.16及以上版本才支持。我的golang版本是1.15.6,网上给出的意见是升级goland版本,但是,公司里用的1.15.6所以我没有升级。执行过后:终端会有一个提示(package io/fs is not in GOROOT (C:\Go\src\io\fs))之前的项目都是可以使用Gin框架的,为什么我新开的项目会出现问题呢,于是我就开始对比新旧项目在环境和和框架上的区别。根据Gin官网的教程我们知道如果使用Gin框架只需要执行下边命令就可以。

2022-12-30 14:43:49 3140 1

转载 js 获取两个数组的交集,并集,补集,差集

js 获取两个数组的交集,并集,补集,差集

2022-12-07 17:23:32 3530

原创 html css怎么隐藏滚动条

隐藏滑动条

2022-09-19 09:25:15 142

原创 Angular 配置开发环境

Angular 配置开发环境

2022-08-29 16:46:37 791

原创 Unity WebGL RuntimeError: integer overflow(整数溢出问题)

此枚举在 WebGL 平台中用于定义在 WebAssembly 代码中执行算术运算时使用的捕获类型。WebAssembly 代码会在除以零、将非常大的浮点数舍入为 int 等情况下抛出异常。仔细查看是WebAssembly在实例化的时候出现了问题。于是我门查看一下打包的设置。此模式通过在执行算术运算时将浮点值限制在合理范围内来避免陷阱。包含 WebAssembly 代码的不同捕获模式的枚举。今天在开发Web版项目的时候发现整数溢出的问题。设置为 Ignore,忽略掉浏览器的异常错误。...

2022-08-10 10:50:26 1745

原创 Unity UMP打包黑屏问题总结

UMP黑屏问题

2022-07-15 10:21:37 3268 4

原创 谷歌浏览器截全图小技巧

谷歌截全图

2022-07-14 14:51:54 942

原创 Unity 接入天气系统

我使用了高德开放平台的天气预报接口接入到Unity中。高德开放平台 | 高德地图API高德开放平台官网https://lbs.amap.com/注册高德开放平台后,鼠标移动到右上角头像后就会发现应用管理,点击应用管理,再点击创建新应用。 点击添加,Web服务就可以使用天气的API。 创建完成后就可以看到对应的Key然后我们查看开发文档就很容易获取到天气的数据。天气查询API服务地址:URLhttps://restapi.amap.com/v3/weather/weatherInfo?parameters请求

2022-06-30 14:04:43 2451 1

原创 Unity 2D游戏中的抛物运动

2D游戏中的抛物运动

2022-06-21 14:57:56 1119

原创 Unity 全景漫游过程中使用AWSD控制镜头移动,EQ控制镜头升降,鼠标右键控制镜头旋转。

Unity 全景漫游过程中使用AWSD控制镜头移动,EQ控制镜头升降,鼠标右键控制镜头旋转。

2022-06-09 16:09:47 2009

原创 Unity WebGL设置全屏方法。

打包完成后需要设置前段JS代码和CSS格式代码。添加width: 100%; height: 100%;修改:

2022-05-30 17:19:58 3174

原创 Unity 本地打开WebGL和Uncaught ReferenceError: unityFramework is not defined报错问题

下载火狐浏览器。Firefox的用户请在浏览器的地址栏输入“about:config”,回车在过滤器(filter)中搜索“webgl”将webgl.force-enabled设置为true将webgl.disabled设置为false在过滤器(filter)中搜索“security.fileuri.strict_origin_policy”将security.fileuri.strict_origin_policy设置为false关闭目前开启的所有Firefox

2022-05-30 17:16:31 1769

原创 Unity Pico老版SDK手柄功能编写

Pico老版SDK为我们提供了很多的API,但是手柄上的很多功能需要我们自己编写。这篇文章记录一下手柄的一些常用控制功能。1.手柄射线以及射线检测。2.手柄的触碰。3.主手柄切换。using System;using UnityEngine;using System.Collections;using Pvr_UnitySDKAPI;using UnityEngine.SceneManagement;public class Pvr_ControllerHand : Mono

2022-05-23 13:53:26 1323

原创 Unity在PC端调用电脑镜头

今天买了一个电脑的前置镜头,就想Unity能不能也可以调用我们的电脑镜头呢?经过学习发现一个方法。调用 Application.RequestUserAuthorization 时,将请求获得麦克风和摄像机的许可权。应用程序向用户显示一个对话框并等待操作完成,然后才能使用这些功能。WebCam 获取摄像头的授权 Microphone 获取麦克风的授权 将代码挂在一个plane上就可以。using UnityEngine;using System.Col...

2022-04-18 16:00:05 1486

原创 Unity和Lua的相互调用(XLua框架)

XLua是一套成熟的热更新框架,本编记录Unity和Lua的相互调用。Unity调用Lua用lua的require函数即可 ,require实际上是调一个个的loader去加载,有一个成功就不再往下尝试,全失败则报文件找不到。目前xLua除了原生的loader外,还添加了从Resource加载的loader,需要注意的是因为Resource只支持有限的后缀,放Resources下的lua文件得加上txt后缀。 LuaEnv luaEnv = new LuaEnv(); luaEnv.DoS

2022-03-29 21:32:49 5712

原创 Unity Shader 动画

Unity Shader中的内置变量(时间)动画效果往往都是把时间添加到一些变量的计算中,以便在时间变换时画面也可以随之变化。Unity Shader提供了一系列关于时间的内置变量来允许我们方便在Shader中访问运行时间,实现各种动画效果。纹理动画纹理动画在游戏中的应用非常广泛。尤其在各种资源都比较局限的移动平台上,我们往往会使用纹理动画来代替复杂的粒子系统等模拟各种动画效果。序列帧动画最常见的纹理动画之一就是序列帧动画。序列帧动画的原理非常简单,它像是放电影一样,依次播放一系列关

2022-03-16 10:33:43 3426

原创 Unity Bakery使用说明(二)

灯光介绍在场景渲染中,灯光是十分重要的,Bakery定义了6种灯光分别是:1.Directional Light (直射光)2.Skylight (环境光)3.Point Light (点光)4.Atea Light (区域光)5.Spotlight (聚光)6.Volume (体积烘焙)​Directional Light (直射光)无限远的定向光(例如太阳)​Color:颜色。Intensity:强度,线性颜色乘数。Shadow sp...

2022-03-08 14:54:50 5808 2

原创 Unity Bakery使用说明(一)

什么是Bakery 为什么用BakeryBakery 是一款可用于生产的高端 GPU 光照贴图器,其设计考虑了灵活性和性能。修复各种烘焙伪影,例如接缝、光/阴影泄漏、不正确的阴影终结器等。烘焙光照贴图不会比在离线渲染器中渲染相机帧带来更多问题。烘焙各种有用的光照数据。不同光源在任何组合中的直接和间接贡献、单独的阴影掩模、方向矢量、球谐函数等。照明也可以按顶点烘焙或放入探针中,而不是使用纹理。物理正确性。烘焙结果与著名的无偏见渲染器 Mitsuba 进行了彻底的比较。细节层次支持。Ba

2022-03-07 14:49:28 23687 4

原创 Unity 高级纹理

立方体纹理在图形学中,立方体纹理是环境映射的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了一层金属一样反射出周围的环境。和之前的纹理不同,立方体纹理一共包含6张图像,这些图像对应了一个立方体的6个面,立方体纹理的名称也由此而来。立方体的每个面表示沿着世界空间下的轴向(上下左右前后)观察所得的图像。对于立方体纹理采样我们需要提供一个三维的纹理坐标,这个三维纹理坐标表示我们世界空间下的一个3D方向。这个方向矢量从立方体的中心出发,当它向外部延伸时就会和立方体的6个纹

2022-03-04 09:45:31 2177

原创 C# 反射(Reflection)

概念:反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。我的理解是,反射的核心就是使用各种类型(Type)相关的 API。public class MyClass{}public class Test04 : MonoBehaviour{ void Start() { var type = typeof(MyClass); //程序集

2022-03-02 14:44:26 1083

原创 Unity 更复杂的光照

Unity 的渲染路径在Unity里,渲染路径决定了光照是如何应用到Unity Shader中的。因此,如果要和光源打交道,我们需要为每一个Pass指定她使用的渲染路径,只有这样才能让Unity知道想要那种的渲染路径,我们吧光源和后处理的光照都放在这些数据里,就可以访问了。也就是说,我们只有为Shader正确地选择和设置需要了需要的渲染路径,该Shader的光照计算才能被正确的执行。Unity支持多种类型的渲染路径主要有三种:向前渲染路径,延迟渲染路径,和顶点照明渲染路径。之后的版本中顶点渲染路径已

2022-02-24 11:44:25 984

原创 Unity Shader透明效果

在实时渲染中要实现透明效果,通常会在渲染模型时控制他的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值之外,它还有另一个属性——透明度。当透明度为1时表示该像素是完全不透明的,当为0时,则表示像素完全不会显示。在unity中,我们通常使用两种方法来实现透明效果:第一种是使用透明度测试,这种方法其实无法得到真正的半透明效果;另一种就是透明度混合。对于不透明物体,不考虑他们的渲染顺序也能得到正确的排序效果,这是由于强大的深度缓冲的存在。在实时渲染中,深度缓冲是用于解决可

2022-02-16 17:16:54 8786

原创 Unity 实现画线火柴人核心画线功能

最近抖音上很火的小游戏,其中的核心划线功能。 [SerializeField] private float width = 0.1f; [SerializeField] private Color color = Color.black; private LineRenderer line; private Vector2 previousPoint; private void Update() { if (Input.GetMouse...

2022-02-16 11:23:47 2280 2

原创 Unity Shader 基础纹理

纹理最初的目的就是使用一张图片来控制模型的外观。使用纹理映射技术,我们可以把一张图片黏在模型表面,逐纹素地控制模型的颜色。这里简单的总结一下单张纹理,凹凸映射,渐变纹理,遮罩纹理。单张纹理 Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) _MainTex ("Main Tex", 2D) = "white" {} _Specular ("Specular", Color) = (1, 1, 1, 1) _Gl

2022-02-09 16:20:00 945

原创 Unity 中的基础光照

通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑三种物理现象。首先,光线从光源中被发射出来。然后,光线和场景中的一些物体相交:一些光被物体吸收了,而另一些光被散射到其他方向。最后,摄像机吸收了一些光,产生了一张图像。光源在实时渲染中,我们通常把光源当成一个没有体积的点,用L 来表示她的方向。那么,我们如何测量一个光源发射出多少光呢?也就是说,我们如何量化光,在光学里,我们使用辐照度来量化光。对于平行光来说,他的辐照度可通过计算在垂直于L的单位面积上单位时间穿过的能量来得到。在计

2022-01-27 15:47:40 2514

原创 Unity Shader数学基础——坐标空间

坐标空间的变换在渲染流水线中,我们往往需要把一个点或者方向矢量从一个坐标空间转换到另一个坐标空间。要想定义一个坐标空间,必须指明其原点位置和三个坐标轴的方向。而这些数值实际上是相对于另一个坐标空间的。也就是说,坐标空间会形成一个层次结构——每个坐标空间都是另一个坐标空间的子空间,反过来说,每个空间都有一个父坐标空间。对坐标空间的变换实际上就是在父坐标空间和子空间之间对点和矢量进行变换。当给定一个坐标空间以及其中一个点(a,b,c)时我们是如何知道该点的位置的呢?我们可以通过4个步骤来确定它的位置

2022-01-19 16:06:10 2469 1

原创 Unity Shader数学基础——矩阵

矩阵的定义由m×n个数a,排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵。记作:这m×n个数称为矩阵A的元素,简称为元,数a位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数a为(i,j)元的矩阵可记为(a)或(a)m×n,m×n矩阵A也记作Amn。元素是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。矩阵基本运算加法矩阵的加法满足下列运算律(A,B,C都是同型矩阵):应该注意的是只有同..

2022-01-18 14:11:13 2760 1

原创 Unity Shader数学基础——笛卡尔坐标,点,矢量

笛卡尔坐标系在游戏制作中我们使用数学绝大部分都是为了计算位置,距离和角度等变量。这些计算大部分都是在笛卡尔坐标系下进行的。二维笛卡尔坐标系一个二维笛卡尔坐标系包含两个部分的信息:一个特殊的位置,即原点,他是整个坐标系的中心。 两条通过原点的相互垂直的矢量,即X轴和Y轴这些坐标轴也被成为该坐标的基矢量。三维笛卡尔坐标系在三维笛卡尔坐标系中,我们需要定义3个坐标轴和一个原点。这三个轴也被称为该坐标的基矢量。通常情况下,这三个坐标轴之间是相互垂直的而且长度为1,这样的矢量也被称.

2022-01-17 14:11:17 2754

原创 Unity 安卓平台Reflection Probe中的Box Projection不能勾选问题

在部分Unity2020版本中Reflection Probe中的Box Projection默认是禁用的。解决方法Edit——Prohcet Settings——Graphics中的Tier Settings按照下图设置一下就可以了。

2021-12-30 11:50:14 3683

原创 Unity Shader基础

ShaderLab在unity中,所有的unity shader都是使用shaderlab来编写的。Shaderlab是unity提供的编写unity shader的一种说明性的语言。Unity shader的结构Shader名字每一个unity shader的第一行都是通过shader语义来指定他的名字。例如:Shader "Custom/NewSurfaceShader"材质和unity shader的桥梁:PropertiesProperties语句块中包含了一系列的属性,这些

2021-12-29 23:10:36 1712

原创 渲染流水线

学习Unity Shader 入门精要的笔记。什么时渲染流水线渲染流水线的任务在于由一个三维场景出发,生成一张二维图像。这个工作时CPU和GPU共同完成的。一般将渲染流水线分成三个阶段:应用阶段,几何阶段,光栅化阶段,这里仅仅是概念性阶段,每个阶段通常也是一个流水线系统。应用阶段这个阶段是我们自己主导的,因此通常由CPU负责实现。开发者有三个主要的任务:1.我们要准备好场景的数据,例如摄像机的位置,视锥体,场景中包含的模型,使用的光源等。2.为了提高渲染性能,我们需要做一个粗

2021-12-21 22:09:51 362

Unity Online Maps v3 v3.8.3

Online Maps 是适用于 2D、3D、AR/VR 和移动应用程序和游戏的通用多平台地图解决方案。

2024-05-11

Multiple Graph And Chart UI Pack

这是一个具有外观和功能的图形和图表UI工具包,包括6个数据可视化场景和许多图形和图表组件。 图形和图表设计的数据可视化。 128px*128px to 3840px*2160px

2023-06-13

Best HTTP2 2.6.3

HTTP,Server-Sent Events,SignalR Core,Socket.IO,Socket.IO 3,Websocket通信。

2023-03-21

3D WebView for Android Web Browser

Unity在Android平台嵌入网页。

2023-01-28

uWindowCapture

用于捕获窗口并在 Unity 中以Texture2D展示。 uWindowCapture is an Unity asset to capture windows and make them available in Unity as Texture2D.

2022-08-24

Bakery Real-Time Preview

烘焙插件

2022-03-08

Bakery - GPU Lightmapper

烘焙插件

2022-03-08

Unity ProjectorSimulator

准确模拟视频投影仪,使图像、视频和 RenderTextures 能够真实地投影。

2021-12-15

Vive-Teleporter.unitypackage

Vive-Teleporter,用于VR中的瞬移

2021-12-07

UIFramework.unitypackage

UI框架

2021-08-19

DoTween.unitypackage

DoTween

2021-06-21

LiquidVolumePro.unitypackage

实验室仪器,烧杯,试管、蒸馏瓶中水、酒效果 模拟或者仿真实验室里仪器化学相关的实验 酒吧 啤酒

2021-06-21

高亮显示.unitypackage

HighlightingSystem

2021-06-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除