草庐IT

RTC1-Unity

全部标签

Unity 天空盒

在Unity中,天空盒是使用天空盒着色器的一种材质。创建天空盒材质1.从菜单栏中,单击Assets>Create>Material。2.在Shader下拉选单中,单击Skybox,然后单击要使用的天空盒着色器。有Skybox/6Sided、Skybox/Cubemap。第一种是选6张图组成,第二种是单个图拆分六个部分。(这里TextureShape选择Cube)3.现在可以填写材质的属性以设置天空盒。材质的可用属性取决于材质使用的天空盒着色器。在场景中绘制天空盒创建天空盒材质后,可以在场景中渲染该材质。为此需要执行以下操作:1.从菜单栏中,单击Window>Rendering>Lighting

Unity3D教程:游戏开发算法-动态规划

经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。以下先用实例说明动态规划方法的使用。【问题】求两字符序列的最长公共字符子序列问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列。令给定的字符序列X=“x0,x1,…,xm-1”,序列Y=“y0,y1,…,yk-1”是

Unity Shader - 兰伯特漫反射

兰伯特漫反射公式:漫反射(Diffuse)= 光源颜色*max(0,cos(光方向和法线的夹角))公式原理: 从上面图片可以看出光照方向L与物体法相N形成的余弦值越大,反射光越大,角度为0度的时候最强Cos(0)=1,大于等于90度的时候为0Cos(90)=0;所以我们首先需要计算出法向量N和入射光方向L的角度的余弦值。我们可以通过他们的点乘来计算,公式如下:把向量归一化处理后,|L|和|N|都是1,可以简化为:让我们来实现以下:逐顶点漫反射:Shader"Unlit/001"{Properties{//漫反射颜色_Diffuse("_Diffuse",Color)=(1,1,1,1)}Sub

Unity解析JSON的几种方式

Unity解析JSON的几种方式1.使用JsonUtility(Unity自带)解析数据踩坑*用于接收的JSON实体类需要声明[Serializable]序列化。*使用Unity自带方法时,实体类如果是属性成员(publicstringmname{get;set;})的话,*在序列化的时候会缺失这些成员,导致解析不出来。将属性改为字段即(publicstringmname;)。varuri=newSystem.Uri(Path.Combine(Application.streamingAssetsPath,"demoText.json"));UnityWebRequestrequest=Uni

Unity编译运行安卓app时报错/Users/bokken/buildslave/.../GUIUtility.cs:189

编译出错结果如下所示Buildcompletedwitharesultof‘Failed’in8seconds(7835ms)UnityEngine.GUIUtility:ProcessEvent(int,intptr,bool&)(at/Users/bokken/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:189)一、背景今天在编译运行安卓app时报的错误unity版本:2021.3.16二、解决方案目前具体原因未知File->buildSettings->build此步骤之后会成功生成apk文件;所以猜测报错是在运行阶段;如果使用编

Unity之OpenXR+XR Interaction Toolkit实现 射线和物体交互事件回调

前言前面我们介绍了如何抓取物体,今天我们来说一下如何和3D的物体进行交互,得到接触的事件回调。交互的两种方式:1.直接抓取或者射线抓取物体,得到接触回调2.射线或者手部触摸物体后,得到接触回调二.准备工作我们需要准备好Unity工程和环境配置有了前文:Unity之OpenXR+XRInteractionToolkit基本配置的介绍,我们就不在详细说明这些了,大家自行复习。流程简述:我们新建一个3D(URP)工程然后通过PackageManager安装XRInteractionToolKit插件。配置好XRInteractionToolkit的Preset新建一个3D场景准备工作完毕添加XROr

Unity 朝向某个位置移动Vector2.MoveTowards()

1、使用场景,比如生成的怪物朝向player角色移动,具有最初级的AI2、Vector2.MoveTowards(当前位置,目标位置,移动速度);transform.position=Vector2.MoveTowards(transform.position,player.transform.position,speed*Time.deltaTime);//speed为声明的float型速度变量3、为什么不能使用Vector3change=newVector3(player.transform.position.x-transform.position.x,player.transform.

Unity编辑器扩展-第二集-按钮排序/分组/放入右键菜单

第一集链接:Unity编辑器扩展-第一集-在菜单栏加入自己的按钮_菌菌巧乐兹的博客-CSDN博客一、本节目标+效果展示1.按钮排序变成2.按钮分组仔细看,有个灰色的杠杠3.放入右键菜单4.皮一下 二、按钮排序具体流程第一集讲,如果想放入标签主要的代码是[MenuItem("GameObject/询问/你是谁")] 但是这行代码可以扩展,如果想写不同方法的顺序,代码会变成[MenuItem("GameObject/询问/你是谁",false,1)]后面的1就是显示的顺序啦,但是这里不需要按顺序,123什么的,你可以写1,22,55,谁大谁就在后面中间的false,咱们后面再讲,先跳过。 三、按钮

Unity iOS打包发布流程

一、版本说明Unity2020.3.33fMacOSMonterey12.3.1XCode13.4.1二、开发者账号苹果开发者平台https://developer.apple.com/类型用途限制费用个人开发者账号用于个人开发者进行开发和向AppStore上传应用只能有一个开发者,调试设备受限$99公司开发者账号用于公司或团队进行开发和向AppStore上传应用可以有多个开发者,调试设备受限,将个人开发者邀请到团队中来$99企业开发者账号用于企业内部发布,不需要审核,但是不能将应用发布到AppStore任何设备都可以通过苹果OTA方式进行安装$290三、证书【1】创建证书签名文件(CSR)【

Unity iOS打包发布流程

一、版本说明Unity2020.3.33fMacOSMonterey12.3.1XCode13.4.1二、开发者账号苹果开发者平台https://developer.apple.com/类型用途限制费用个人开发者账号用于个人开发者进行开发和向AppStore上传应用只能有一个开发者,调试设备受限$99公司开发者账号用于公司或团队进行开发和向AppStore上传应用可以有多个开发者,调试设备受限,将个人开发者邀请到团队中来$99企业开发者账号用于企业内部发布,不需要审核,但是不能将应用发布到AppStore任何设备都可以通过苹果OTA方式进行安装$290三、证书【1】创建证书签名文件(CSR)【