Unity
文章平均质量分 51
皮皮#2500
这个作者很懒,什么都没留下…
展开
-
Unity 计算任意形状模型物体的体积
Unity 计算任意形状模型物体的体积基本思想基本思想 计算任意模型体积的基本思想是体素化。我们可以首先计算出物体的包围盒大小,然后在包围盒内均匀等间隔的取点,最后计算点落在物体内与采样总点数的比值,即可求出模型的体积。......原创 2021-11-21 14:12:49 · 2383 阅读 · 1 评论 -
Unity下的ICP坐标变换
希望求得Unity场景中物体A与物体B的变换,通过ICP迭代求得。已知:B的局部坐标:Vector3[] vertices_model = modelObject.GetComponent<MeshFilter>().mesh.vertices;,A的局部坐标Vector3[] vertices_sample = sampleObject.GetComponent<MeshFilter>().mesh.vertices;。将两物体的局部坐标变换为世界坐标:Matrix4x4原创 2022-05-20 17:27:08 · 145 阅读 · 0 评论 -
Vuforia停止特定对象的跟踪(Stop special target tracking),每次只跟踪一个物体,提高性能和稳定性
Vuforia停止特定对象的跟踪(Stop special target tracking),每次只跟踪一个物体,提高性能和稳定性Vuforia中TrackerManager.Instance.GetTracker<ImageTracker>().Stop(); 会使所有对象停止追踪,这与期望是不符的。通过disable特定的vuforia数据集,实现对特定对象追踪的控制:public void SwitchTargetByName(string activateThisDataset)转载 2021-12-14 10:16:09 · 462 阅读 · 0 评论 -
Unity 使场景整体变暗
Unity 使场景整体变暗在Camera前加一个plane,其材质设置为:颜色为黑色,通过修改alpha值调整亮度。参考链接:Most efficient way to darken the screen?原创 2021-12-11 12:23:09 · 5434 阅读 · 0 评论 -
Unity 计算两个物体相交部分的体积 (Find the volume of an intersection between two objects in Unity)
Unity 计算两个物体相交部分的体积 (Find the volume of an intersection between two objects in Unity)基本思想实现方法基本思想 Unity中计算两个物体相交部分的体积与计算任意形状模型体积的方法类似,具体思想见:Unity 计算任意形状模型物体的体积。实现方法using System.Collections;using System.Collections.Generic;using UnityEngine;using原创 2021-11-21 13:38:45 · 1470 阅读 · 1 评论 -
C# SocketAsyncEventArgs (SAEA) 实现异步通信
客户端直接照搬:https://blog.csdn.net/fuemocheng/article/details/78241405服务器端:https://github.com/tangxuehua/SocketAsyncEventArgsSample服务器接收数据模块没有问题,发送数据需要做如下更改:声明变量:private SocketAsyncEventArgs m_sendSAEA = new SocketAsyncEventArgs();MessageData sendData = ne原创 2021-10-29 17:53:23 · 491 阅读 · 0 评论 -
Unity 如何使用Edit Script (the script is an edit script)
Unity 如何使用Edit Script (the script is an edit script)You can’t add it to an object. Create a folder called Editor in your Assets folder, and put editor scripts in there. If they compile, their UI will auto-incorporate to the editor’s UI.Editor Scripting原创 2020-12-25 10:29:34 · 2681 阅读 · 0 评论 -
Unity中使用粒子特效(Particle System)制作烟花和烛光效果
Unity中使用粒子特效(Particle System)制作烟花和烛光效果烟花烛光烟花Unity&烟花效果实例烛光Unity3d粒子特效:制作火焰效果由于烛光的火焰是比较稳定的,像下图一样在本示例中使用的火焰纹理如下:在设置Fire的Texture Sheet Animation模块的时候,选择Animation的时候,选择Single Row,行数设置为1,即第二行,两火焰波动较小。最终做出的效果如下:...转载 2020-12-24 17:43:01 · 3294 阅读 · 1 评论 -
Unity中调整粒子特效(Particle System)大小
Unity中调整粒子特效(Particle System)大小问题描述解决方法原因解决特别注意参考链接问题描述再Unity中调整粒子系统的Scale,怎么该都不起作用,希望达到调整父Particle System的Scale,整个粒子系统做出相应尺寸调整的变化。解决方法原因粒子系统中有一个属性叫Scaling ModeScaling Mode:缩放模式,Hierarchy(同时受自己与父节点的缩放影响),Local(自受自己影响),Shape(天塌下来也不缩放)。particle syste原创 2020-12-23 08:54:45 · 13205 阅读 · 0 评论 -
Unity import package只有custom package解决方法
Unity import package只有custom package解决方法在asset store里搜索Standard Assets选择导入即可:导入完成后在左下角的project assets中多了一个Standard Assets文件夹打开即可使用:转载 2020-12-22 11:31:18 · 3918 阅读 · 1 评论 -
Unity 高亮显示物体相交区域
Unity 高亮显示物体相交区域https://www.youtube.com/watch?v=C6lGEgcHbWchttps://www.youtube.com/watch?v=vwo3AHzagvghttps://www.reddit.com/r/Unity3D/comments/65ouxk/intersection_shader/https://gamedev.stackexchange.com/questions/157922/depth-intersection-shaderhttp原创 2020-12-17 10:54:06 · 195 阅读 · 0 评论 -
Unity在Hierarchy中查找隐藏物体,并将其激活SetActive
Unity在Hierarchy中查找隐藏物体,并将其激活SetActive &ensp在Hierarchy 有时会隐藏一些游戏物体,我们需要在游戏的时候将其激活状态变为true,我们发现通过 GameObject.Find(“隐藏物体名字”) 是查找不到隐藏对象的。我们可以通过以下方法来查找游戏物体:1.先在Hierarchy面板建立父子关系将父物体为激活状态,将隐藏的物体设置为子物体:2.查找隐藏物体并激活GameObject ParentObject = GameObject.转载 2020-12-13 15:52:26 · 2607 阅读 · 0 评论 -
Unity 在Game窗口下显示mesh
Unity 在Game窗口下显示mesh问题描述实现方法问题描述在Scene窗口中,当我们点击一个物体时,会显示出一个物体的纹理:但是在Game窗口中,我们时看不到这个纹理的:目标:希望在Game窗口中可以看到和Scene窗口中一样的纹理效果。实现方法安装插件Wireframe将解压后的工程放到Unity工程Asset文件夹下:在Unity中,新建一个材质球,然后将Wireframe文件夹下的UCLA GameLab Wireframe.sh着色器附加到新建的材质球上:将材质球附加原创 2020-12-02 15:35:53 · 1329 阅读 · 0 评论 -
Unity 动态修改物体的材质Material
Unity 动态修改物体的材质Material实现方法代码参考链接实现方法获取物品Mesh Render下的Materials,进行一层或者多层的替换代码通过调用ChangeShader和ChangeShaderTwo来实现材质的更改using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class ShaderChange : Mon原创 2020-12-01 11:25:29 · 10804 阅读 · 0 评论 -
Unity 通过代码为一个物体添加多个材质球materials
Unity 代码为一个物体添加多个材质球materials Unity的MeshRenderer提供了Materials数组,支持同时挂多种材质。这样做的目的是,为含有Mesh对象的多个SubMesh使用不同的材质,渲染不同的效果:需要添加多个Material直接在对象的Inspector窗口修改Materials的Size,然后把待添加的材质拖入Element选项框即可。在脚本中获取Materials数组的方法://创建子物体GameObjectGameObject tem = new原创 2020-12-01 08:55:54 · 9083 阅读 · 0 评论 -
C#调用C++ dll,C++返回类型为char*,并通过指针传出值
C#调用C++ dll,C++返回类型为char*,并通过指针传出值编写生成c++ dllUnity C#中调用C++ dll编写生成c++ dll在项目属性页修改项目类型为动态库(.dll)编写头文件,声明要导出的函数编写一个动态链接库,需要在一个头文件.h中声明你要导出的函数,并在对应的.cpp中实现需要导出的函数。同时也需要定义导出符号,注意导出符号的前缀应保持与项目名一致:在.cpp文件中,include编写好的对应头文件:生成解决方案,在工程目录下找到生成的dll,具体位置可以原创 2020-10-29 09:13:30 · 4211 阅读 · 0 评论 -
Unity双相机Camera,将虚拟相机视角画面显示在平面Plane上
Unity双相机Camera,将虚拟相机视角画面显示在平面Plane上场景中通过添加Render Texture实现通过挂脚本实现场景中通过添加Render Texture实现1、场景中新建Render Texture2、将其拖到相机的Target Texture上3、新建Plane,将虚拟相机视角画面渲染在上面:将第一步新建的Render Texture直接拖到Plane上4、运行,相机拍摄的画面被实时显示在Plane上通过挂脚本实现将脚本挂在场景中using UnityEngin原创 2020-10-20 11:29:20 · 4066 阅读 · 0 评论 -
Unity:计算两个物体(没有父子关系)的相对坐标
Unity:计算两个物体(没有父子关系)的相对坐标问题描述实现方法问题描述计算Unity场景中物体B在物体A坐标系下的坐标,且两物体没有父子关系实现方法计算一个物体A的position相对于另一个物体B(origin)的坐标...原创 2020-10-20 09:46:40 · 3062 阅读 · 0 评论 -
Unity中导入STL格式模型
Unity中导入STL格式模型什么是STL完整代码完整工程参考链接什么是STL STL文件是一种非常简单且实用的三角形网格文件,他只按照三角面片的方式存储了所有的面信息及法矢量,不包含纹理以及其他任何媒体信息,主要存储格式分为:ASCII码格式、二进制格式。 这种文件格式在工业上以及3D打印行业应用非常广泛,但是Unity并不支持这种格式的模型,原因可能是因为STL模型的顶点普遍量级过大,随随便便一个模型都有可能越过了Unity单个网格顶点数不能超过65000的上限,以及他自身在未经过3D原创 2020-10-04 16:31:23 · 2158 阅读 · 7 评论 -
Unity Mesh:顶点数超过65000的绘制方法
Unity Mesh:顶点数超过65000的绘制方法核心代码完整工程参考链接核心代码 在Unity中,单个Mesh绘制的顶点数不能超过65000,当需要绘制顶点数超过65000个的模型时,需要将模型进行拆分绘制。核心代码如下: private void CreateInstance() { string fullPath = "D:\\UnityProject\\DrawMesh\\Assets\\ImportSTL\\徽章.stl"; int g原创 2020-10-04 12:15:44 · 2590 阅读 · 0 评论 -
Unity新创建的物体是灰色的,而且无法通过白色材质球给予纯白色(结果还是灰色)
选择Windows->Rendering->Lighting Setting,勾选Auto Generate即可。原创 2020-09-30 14:56:47 · 3879 阅读 · 1 评论 -
文献插图:在Unity中画出360°全景视频观看示意图
文献插图:在Unity中画出全景视频观看示意图插图说明实现思路操作步骤创建场景相机视锥体可视化设置图像显示层级实现效果工程下载插图说明在论文中需要画出插图,以说明全景视频在观看时的示意图,类似于如下效果:实现思路创建两个Sphere,设置其中一个球显示效果为“透视”,另一个为“不透视”。“透视”球显示全部的全景图片,“不透视球”显示相机视锥体区域内的图像。操作步骤创建场景①在Unity场景中,添加两个大小为10.51的Sphere,一个名为为foveated,一个为margin,位置为(0原创 2020-09-04 14:44:01 · 438 阅读 · 0 评论 -
Unity项目打包到移动平台丢失Shader,错误描述:ArgumentNullException: Value cannot be null. Parameter name: shader
Unity项目打包到移动平台丢失Shader问题描述产生原因解决方法问题描述 在将Unity中的项目打包生成到UWP平台后,运行时出现错误:ArgumentNullException: Value cannot be null. Parameter name: shader产生原因 在Unity中,Shader是从代码中进行加载的,编辑器中并没有引用。在编辑器中运行项目没有问题,但当项目发布到移动平台,如ios、android、UWP之后,游戏中并不能找到对应的shader。因为Shad原创 2020-08-18 00:40:36 · 4126 阅读 · 1 评论 -
Unity Mesh基础知识
Unity Mesh基础知识什么是MeshMesh的组成部分利用Mesh创建一个Cube创建Cube顶点坐标渲染转载链接什么是Mesh Mesh是指的模型的网格,3D模型是由多边形拼接而成,而多边形实际上又是由多个三角形拼接而成的。即一个3D模型的表面其实是由多个彼此相连的三角面构成。三维空间中,构成这些三角形的点和边的集合就是Mesh。Mesh的组成部分 1.顶点坐标(vertex) 2.法线(normal) 3.纹理坐标(uv) 4.三角形序列(triangl转载 2020-08-17 12:36:26 · 5227 阅读 · 0 评论 -
在Hololens中开发TCP通信,错误“ArgumentException: Value does not fall within the expected range”的解决方案
在Hololens中开发TCP通信,错误“ArgumentException: Value does not fall within the expected range”的解决方案问题描述解决方法参考链接问题描述 在将异步TCP通信项目部署到Hololens2中运行时,出现错误“ArgumentException: Value does not fall within the expected range”,这是在5月15日发部的Win 10 SDK 10.0.19041.0与Unity2019原创 2020-08-01 19:36:47 · 2995 阅读 · 4 评论 -
Unity中的实例化、序列化与ScriptableObject的使用
实例化:Unity中实例化游戏物体和销毁游戏物体Unity3D中Prefab的简单介绍序列化:关于序列化SerializableScript SerializationUnity 3D 序列化(Serialize)Unity-Unity中的序列化ScriptableObject:关于ScriptableObject的使用简单说说ScriptableObject...原创 2020-06-22 17:30:01 · 1357 阅读 · 0 评论 -
UWP平台和PC平台有什么区别
UWP平台和PC平台有什么区别什么是UWP平台定义不同运行不同起源不同转载链接什么是UWP平台 Universal Windows Platform(UWP)直译过来就是通用Windows平台,它是微软基于Win10开发的一个通用平台,微软希望自己所有的设备(包括Surface,Xbox,HoloLens等)都运行于同样的系统,然后让用户像使用苹果设备一样从自己官方的商城来下载安装应用,这样可以让应用市场中心化的同时保证系统的安全,稳定,高效。所以PC可以运行UWP平台应用,但UWP应用不止可以运转载 2020-06-18 20:38:58 · 14907 阅读 · 0 评论 -
Unity2019.3.2f下载
Unity下载地址:https://download.unitychina.cn/download_unity/536936b73d1b/Windows64EditorInstaller/UnitySetup64.exeUnity Hub下载地址:https://publiccdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe...原创 2020-03-23 20:04:47 · 1179 阅读 · 0 评论 -
Initialize Texture2D[ ]
Initialize Texture2D[ ]初始化数组长度初始化元素参考代码参考链接 在Unity中播放YUV视频时,采用每帧播放时再将YUV转化成RGB然后传入着色器的方式不仅会造成大量的内存开销,而且会造成播放卡顿的现象。 为了解决这个问题笔者尝试将视频源在Start()中先全部转化成RGB存放在Texture2D[ ]数组中,然后在每帧渲染时直接从数组中索引对应的纹理即可,...原创 2020-03-18 10:57:59 · 472 阅读 · 0 评论 -
Unity3D中球直角坐标与球极坐标映射
Unity3D中球直角坐标与球极坐标映射极坐标与直角坐标映射Unity坐标系下映射二维纹理坐标转球直角坐标球直角坐标转球极坐标球极坐标转球直角坐标球直角坐标转二维纹理坐标验证极坐标与直角坐标映射球坐标系(r,θ,φ)与直角坐标系(x,y,z)的转换关系:x=rsinθcosφ.y=rsinθsinφ.z=rcosθ.反之,直角坐标系(x,y,z)与球坐标系(r,θ,φ)的转换关系为:...原创 2020-03-02 15:33:14 · 3923 阅读 · 1 评论 -
Unity3D中二维纹理与球坐标映射
Unity3D中二维纹理与球坐标映射二维纹理坐标到球直角坐标映射球直角坐标到二维纹理坐标映射二维纹理坐标到球直角坐标映射在Unity3D中世界坐标系坐标轴如下:其中z轴正方向正对着屏幕朝外。二维纹理坐标原点在左下角:映射到球关系如下:其中6点代表X轴正方向,0123点代表Y轴正方向,5点代表Z轴正方向。我们设二维纹理坐标(原点在左下角)为(x,mY),其转换到世界坐标系的球坐标...原创 2020-03-02 11:25:20 · 1303 阅读 · 6 评论 -
Unity中引起cpu流水线阻塞的三个原因
1、多个任务在同一时间周期内争用同一个流水段(资源冲突) 例如,假如在指令流水线中,如果数据和指令是放在同一个储存器中,并且访问接口也只有一个,那么,两条指令就会争用储存器;在一些算数流水线中,有些运算会同时访问一个运算部件。2、数据依赖(数据相关) 比如,A运算必须得到B运算的结果,但是,B运算还没有开始,A运算动作就必须等待,直到A运算完成,两次运算不能同时执行。3、 条件...转载 2020-02-27 20:07:56 · 990 阅读 · 0 评论 -
Unity Texture2D与Color类型文档
Texture2D:https://docs.unity3d.com/ScriptReference/Texture2D.htmlColor:https://docs.unity3d.com/ScriptReference/Color.html原创 2020-02-25 16:21:10 · 784 阅读 · 0 评论 -
Visual Stdio2015安装Math.NET Numerics库
Visual Stdio2015安装Math.NET Numerics库NuGet Tools安装Math.NET Numerics安装常见错误NuGet Tools安装在VS中选择工具—>扩展和更新—>联机—搜索nuget—>下载Math.NET Numerics安装在 Visual Studio 2015 中,打开 Tools -> Nuget Package...原创 2020-02-25 16:14:37 · 1040 阅读 · 0 评论 -
Unity物体始终处于视口中心
将此代码挂在相机下using System.Collections;using System.Collections.Generic;using UnityEngine;public class Trace : MonoBehaviour { // Use this for initialization void Start () { } // Update is c...原创 2020-02-24 18:16:12 · 1766 阅读 · 2 评论 -
Unity3D全景视频渲染
Unity3D全景视频渲染Unity3D中创建场景SphereMaterialShaderRender Texture编写CS脚本进行渲染创建脚本完整代码实现效果参考链接 实现在Unity3D中渲染YUV420P文件,可以渲染一帧(即全景图片),也可以渲染多帧(即全景视频)。Unity3D中创建场景Sphere首先在Sence中创建一个Sphere注意sphere中Scale的Z...原创 2020-02-22 22:51:14 · 2321 阅读 · 4 评论 -
平面纹理与球面纹理映射关系
平面纹理与球面纹理映射关系使用顶点的法向量生成纹理坐标使用顶点的位置向量生成纹理坐标参考链接球面纹理映射就是将一个平面纹理映射到球面上,见下图: 实现球面纹理映射有两种方法,一种是使用顶点的法向量来生成纹理坐标,另一个是使用顶点的位置向量来生成纹理坐标。使用顶点的法向量生成纹理坐标 问题的本质是根据球面上每个点的法向量坐标生成对应的纹理坐标,请看下图,下图中外部的方框表示二维...原创 2020-02-22 00:19:35 · 4980 阅读 · 0 评论 -
材质球与着色器
什么是材质球?人的衣服什么是shader?决定材质跟灯光的作用shader属性定义的通用格式:Properties{ Property [Property…] }name(“display name”,Int)=numbername:变量名字,以下划线开头display name :供外界参考说明int:表示变量类型=number:表示默认值_MainTex(“Texture...原创 2020-02-21 23:51:10 · 570 阅读 · 0 评论 -
Shader1.0与Shader2.0区别
Shader1.0与Shader2.0区别 Shader1.0Shader2.0编写顶点着色器Shader1.0可编程模块顶点着色器顶点着色器:1.计算顶点颜色调节顶点颜色的方式:①直接在pass中设定Color(1,1,1,1)②在属性中定义变量_TestColor(“display color”,Color) = (1,1,1,1),然后再pass中引用Color[_Test...原创 2020-02-19 23:25:15 · 403 阅读 · 0 评论 -
Unity中的MipMap与LOD
查看Texture2D的定义可以看到有一项是mipmap,即纹理贴图金字塔。 mipmap针对的是纹理贴图,大白话就是,一个模型身上会有贴图,当我们对这个贴图使用了MipMap技术之后,那么在游戏运行中这个模型的贴图会根据摄像机距离模型的远近而调整不同的不同质量的贴图显示。 在这个游戏场景中,我们给一个模型贴了一个木纹贴图,当我们没有对这个贴图使用MipMap技术的时候,无论我...转载 2020-02-19 16:43:28 · 1215 阅读 · 0 评论