自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 Unity寻路-07NavMeshAgent组件参数详解

12、Auto Repath:如果导航组件在寻路的过程中被挡住了过不去,在移除障碍物后,AutoRepath勾选的情况下,导航组件会继续导航到上一次导航的目的地,未勾选则停留在原地。只会与其它挂载NavMashAgient组件的物体产生效果(不同角色的导航物体直接产生效果),如果是提前bake好的环境物体则不会产生效果。7、Auto Braking:类似于自动刹车的效果,就是离目标点越近会自动减速,一般不勾选,不然可能会出现减速后和角色移动动画不匹配的效果。案例二:通过键盘上的输入,控制寻路组件的移动。

2023-07-03 09:52:30 480

原创 Unity寻路-06多导航场景叠加跳转

备注:师从plane 有想跟着老师学习的同学可以看看老师的课,都是干货~学习链接:https://www.qiqiker.com/1、场景一中添加 OffMeshLink,指点开始点。2、加载另外一个场景(注意这里是叠加场景)3、代码指定link的end位置。

2023-06-28 20:36:07 152

原创 Unity寻路-05导航区域成本设置

那么如何通过设置成本去自动避开对应区域呢,如图所示,只需要设置后面的参数就可以。可以理解成成本越低,此区域寻路生成路径的优先级越高。这样就实现了自动避开某个成本高的区域,去成本更低的区域进行寻路的效果。备注:师从plane 有想跟着老师学习的同学可以看看老师的课,都是干货~如果想将不同区域进行区分,首先需要Areas中设置不同的区域标签。学习链接:https://www.qiqiker.com/默认情况下烘焙后产生的寻路区域都是Walkable,再将选中的物体标记为对应区域标签。

2023-06-28 19:39:33 76

原创 Unity寻路-01基础使用

5、Advanced-> Manual Voxel Size (修改体素大小,默认情况下,一个代理半径内存在三个体素,勾选后可进行更改,体素越多导航网格越精细,一般保持默认值就行。图一中同样是设置最小面积为2,处于体素交界处(多边形网格交界处的物体会出现不受最小面积的影响,会生成网格物体。解决此问题的办法是不用管最小面积参数,选择交界处的物体按照下方图所示进行设置为不可行走的物体)7、Height Mesh:指的是在楼梯的地方,需不需要保留阶梯高度信息,如果勾选,有高度信息后就可以进行精细化的处理。

2023-06-28 19:06:30 188

原创 Unity寻路-04利用OffMeshLink实现动画的优化控制

如下图所示,Auto Traverse OffMeshLink 属性勾选后控制权是agent组件自己控制,相反不勾选则到达跳跃节点后可以由自己去实现其中的逻辑。能解决什么问题:在寻路的物体到达OffMeshLink跳跃节点时,可以将从一个点跳跃到另一个点的过程转交给自己去控制,达到自己预期的结果。具体实现跳跃的效果代码如下(需要自己实现鼠标点击地面 进行寻路,这里只放如何对跳跃过程自己处理的代码,之前寻路篇中有如何实现基本寻路的过程代码)学习链接:https://www.qiqiker.com/

2023-06-20 19:56:08 127

原创 Unity寻路-03网格外链接OffMeshLink

Bidirectional属性:双向传送,勾选后可以从开始或结束点任意进行跳跃,不勾选只能从开始点跳跃到结束点。在运行时如果移动了开始或结束点的位置,勾选此选项后会进行更新跳跃起始点位置,不勾选则是最开始的位置。可解决的问题:类似于山崖之间的跳跃、或者从某一层跳转至另一层、实现类似于翻跟头等效果。在物体上挂载OffMeshLink组件:最好是创建空结点,打成组便于管理。备注:师从plane 有想跟着老师学习的同学可以看看老师的课,都是干货~Jump Distance:跳跃距离,决定不同平面上的跳跃距离。

2023-06-20 19:52:31 184

原创 Unity寻路-02网格障碍NavObstacle

1.一种障碍物的形式是它会变更NavMesh的信息,然后他就能够从全局找到其它路径绕过障碍物。(缺点是需要修改整个场景的NavMesh信息,性能开销较大。Move Threshold:移动阈值,当未勾选Carve Only Stationary选项时,物体每移动多少量时进行一次NavMash的信息修改。实际项目中使用时的思路,对于有规律的运动的物体需要设置成障碍物的时候,当它处于静态的时候去做一次NavMesh的信息变更。开启会后自动根据障碍物进行修改当前NavMesh的信息,自动找到最优路径进行寻路)

2023-06-20 19:28:24 148

转载 C# 构造函数和析构函数

@原文连接:C#中的析构函数C#中的析构函数析构函数析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。以C++语言为例,析构函数名也应与类名相同,只是在函数名前面加一个波浪符,例如stud( ),以区别于构造函数。它不能带任何参数,也没有返回值(包括void类型)。只能有一个析构函数,不能重载。如果

2021-11-10 11:33:24 995

原创 C# 字符串实用小技巧收集

@后续会持续收集、更新,觉得有用的小伙伴可以提前关注一波在Unity-Assets文件夹下根据资源文件全路径如何获得资源名称?(或者给定一个路径获取路径后的文件名)思路:利用string类中的LastIndexOf(或者IndexOf,一个是返回最后一次的查找到的索引,一个是返回第一次查到的索引,具体使用哪个根据当前项目需求)方法获取最后一个“/”或者“\”等等的索引。在通过指定索引移除字符串string类中的remove方法移除上面获取到“/”索引+1的字符。(解释下为什么要+1,因为remov

2021-11-08 13:58:01 170

原创 CRC32 C#代码

用于生成唯一文件标识 项目中比全路径好用 代码如下:class CRC32{ static UInt32[] crcTable = { 0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64,.

2021-11-08 13:43:56 665

转载 Unity-资源深入理解

https://www.cnblogs.com/zhaoqingqing/p/5823927.html

2021-11-06 13:04:02 67

原创 Unity-Editor编程常用Api收集(一)

@备注: 后续会持续收集和更新,觉得对自己有用的可以提前关注一波哦~@注意: Unity编辑器脚本需要放在Editor文件夹下,并且打包不会被编译。在unity编辑器菜单中创建菜单栏[MenuItem("Tools/打包")]public static void Build(){ //需要执行的操作}在Unity-Project面板增加创建Assets资源菜单按钮[CreateAssetMenu(fileName="创建出来的assets资源的名称",menuName="菜单

2021-11-06 11:29:53 552

原创 Unity-序列化

序列化定义序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。如何标记一个类实例化出来的对象可以被序列化呢?首先需要引入命名空间System.Xml.Serialization需要序列化的类加入System.Serializable标签属性加上对应序列化标签。using System.Xml.Serialization;//首先需

2021-11-04 11:34:22 459

原创 Unity-资源加载(一)

Unity中的资源加载面板拖拽代码中变量使用public修饰符,在unity面板中将需要的资源拖拽上进行赋值 。(一般用于个人测试或者Demo中,如果不小心遇到Unity崩溃或者物体上的脚本丢失情况则需要重新拖拽,非常不利于项目开发)使用Resources文件夹方式加载Resources文件夹文件大小上限大概为两个G左右,所以可以将一些配置表放在中间进行加载。小型项目、demo可以使用此加载方式。代码使用Resources.load<资源类型>(“资源路径”);进行加载使用unity

2021-11-03 14:15:54 1438

原创 Unity-程序集

Unity-程序集初识unity中程序集创建程序集创建后包含的脚本范围为当前文件夹下所有的脚本文件,包括子目录下的文件。但是,在程序集之外建立的脚本会属于unity自己本身程序集的内容。(CShape.Dll)默认的cshape.dll下是可以调用到下面所有的dil文件的(也就是为什么dll导入Unity之后会自动识别了)如果要是不是默认的dll 相互调用就需要添加依赖关系。在C#中使用C++代码,防止不安全代码需要勾选Allow ‘unsafe’ code(暂时没用到

2021-11-03 10:19:40 3225

原创 C#String类的使用

String类使用总结 // prints hello string s = "hello"; Debug.Log(s); // prints hello world s = string.Format("{0} {1}", s, "world"); Debug.Log(s); //字符串格式化输出 // prints helloworld s = string.Conca

2021-03-04 14:30:01 206 1

原创 VRTK_AxisScaleGrabAction (通过两个手柄对物体进行缩放)

UngrabDistance:两个手柄距离多远之后将会断掉。Look Axis:是否要锁定轴。(类似于只缩放固定的一些轴。)UniformScaling:如果勾选将会对物体得三个轴同时缩放。有些红色的选项已经过时了。注意:因为这里需要两个手柄去操作一个物体,就没用手柄交替抓取的脚本了。这里需要制定VRTK_InteractableObject中的SecondaryGrabActionScript....

2020-06-28 23:31:26 473

原创 VRTK_InteractHaptics 手柄震动

分别是即将触碰、触碰、抓取、使用时手柄是否震动。调节声音、强度、震动时间等参数。(震动这里可以获取trigger键按下的程度来调整震动幅度。这样会比较真实)

2020-06-28 23:29:52 548

原创 VRTK_InteractObjectAppearance(修改交互对象的外观、显示隐藏手柄)

objectToAffect:“要影响外观的游戏对象。”如果为空,则将使用交互对象(通常是控制器)。objectToMonitor:要监视交互事件的可交互对象(接近触摸/触摸/抓取/使用)。gameObjectActiveByDefault:指定的objectToAffect对象是否可用rendererVisibleByDefault:指定的objectToAffect对象是否渲染.剩下的分别是即将触碰、触碰、抓取、使用时是否隐藏或者渲染交互物体...

2020-06-28 23:29:13 567

原创 VRTK_SDKTransfromModify(物体和手柄保持同一个方向位置。)脚本介绍

这个脚本会将target物体和手柄保持同一个方向位置。target:需要匹配的物体。

2020-06-28 23:28:50 242

原创 VRTK_InteractNearTouch脚本介绍

挂载到手柄后可调整靠近物体的距离等属性,用于一些需要使用neartouch的脚本配合使用。脚本中有靠近和离开neartouch物体得事件。

2020-06-28 23:26:54 321

原创 VRTK_SnapDropZone脚本介绍

highlightObjectPr efab:当放置物体的时候放置区域高亮显示的模型,这里指定需要放置的物体。snapType:将有效的可交互对象放到快照区域中时要应用的快照类型UseKinematic - 将可交互对象rigidbody设置为“iskinematic=true”。UseJoint - 将可交互对象的刚体作为“连接体”附加到关节。UseParenting - 将快照区域设置为可交互对象的父级,并将其刚体设置为“iskinematic=true”。snapDuration:被放置的物

2020-06-28 23:25:54 923

原创 VRTK_XXX GrabAttach脚本收集总结(VRTK里的多种抓取机制 )

VRTK_Track ObjectGrabAttach抓取物体使其跟随物体移动,这个脚本配合使用在物理效果下跟随。(VRTK_physics XXX)VRTK_MoveTransformGrabAttach抓取物体使其跟随物体移动,这个脚本配合使用在人造的效果下跟随。(VRTK_Aratificial XXX)Release deceleration damper:释放减速阻尼器。(取消抓取时,物体移动的缓冲,不是立刻停止,会根据施加的力进行缓冲)Reset to orign on Release

2020-06-28 23:25:16 811

原创 关于VRTK_Physics xxx和VRTK_Aratificialxxx脚本的区别总结

当前物体如果不需要和其他物体交互可以使用物理效果的脚本时实现(VRTK_Physics),如果需要和其他物体进行交互,使用物理效果的组件可能会出现与其他带有物理效果的物体冲突。所以不建议,当然看情况而定。有些人工组件例如VRTK_ArtificialPushushers 效果可能没有物理组件效果好 这个需要按照项目实际情况确定。人工的简单来说就是防止出现意想不到的bug。VRTK_Araificial XXX需要创建空物体套在滑动物体的外面(滑块的位置需要是0,0,0),而且滑动的值如果设置为负值他会.

2020-06-28 23:18:49 263

原创 VRTK_PhysicsSilider

实现效果同VRTK_AraificialSilider。(区别在于VRTK_PhysicsSilider是通过unity自带物理效果实现的,而VRTK_AraificialSilider是VRTK自己实现的一套逻辑)这里可以去看看之前写的VRTK_PhysicsSilider脚本介绍。

2020-06-28 23:15:40 203

原创 VRTK_AratificialSilider (人工滑动条)

2020-06-28 23:10:49 212

原创 VRTK_ControllerRigidbodyActivator脚本

isenabled:如果选中此选项,碰撞器将在碰撞过程中打开和关闭其刚体。activateinteracttouch:如果选中此选项,则刚性体激活器将激活交互触摸脚本上的刚性体和碰撞器。activatetrackedcollider:如果选中此选项,则刚性体激活器将在控制器跟踪的碰撞器脚本上激活刚性体和碰撞器。...

2020-06-27 23:51:55 163

原创 VRTK_Physics Pusher (物理推进器,推动效果使用unity自带物理效果)

Operate Axis:按照哪个轴进行推动。Ignore Collisions with :忽略的碰撞。例如桌子上有个盒子,盒子里有个方块,现在需要用手柄推动方块,不想要手柄与桌子或者盒子进行碰撞,就可以在这里设置忽略碰撞。pressed distance:按压的距离。stay Pressed :是否保持按压。(有的时候按压按钮不需要按钮进行回弹,就可以勾选上这个选项。)minMaxLimitThreshold :推动器当前沿‘操作轴’的标准化位置必须在推动器的最小和最大限制内..

2020-06-27 23:51:05 462

原创 代码切换手柄模型和自定义模型

public class ToggleCustomHands : MonoBehaviour { public VRTK_ControllerEvents leftController; public VRTK_ControllerEvents rightController; public GameObject leftHandAvatar; public GameObject rightHandAvatar; .

2020-06-27 23:48:07 904

原创 VRTK_PhysicsRotator

和VRTK_Artifical Pusher效果一样,只不过是VRTK自己实现的一套推进器效果。grabMechanic:操作旋转器时要使用的可交互对象抓取机制的类型。TrackObject - 跟踪对象抓取机制RotatorTrack - 旋转轨道抓取机制...

2020-06-27 23:45:46 289

原创 VRTK_Artificial Rotator(人工旋转器)脚本属性详解

Operate Axis:旋转轴,按照物体哪个轴进行旋转。ignoreCollisionsWith:用于忽略碰撞事件的GameObjects集合。excludeColliderCheckOn:确定是否应创建默认Collider时要排除的GameObjects集合。HingePoint:绕着哪个点进行旋转。Angle Limits:角度范围,设置可旋转的最大值或者最小值。MinMaxThresholdAngle:在达到最小或最大角度之前,旋转器旋转可以处于最小或最大角度内的角..

2020-06-27 23:44:56 758 2

原创 VRTK_SwapControllerGrabAction作用

在可交互物体挂上这个脚本后,左右手柄可以交替抓取物体。(前提是必须挂载VRTK_InteractableObject脚本)

2020-06-27 23:42:22 379

原创 VRTK_BaseGrabAttach脚本介绍

precisionGrab:如果选中此项,那么当Interact Grab抓取Interactable Object时,它将精确地抓取它并在Interact Touch触摸的Interactable Object上的特定点处拾取它。throwVelocityWithAttachDistance:如果选中,那么当抛出Interactable Object时,Interactable Object的附着点和Interact Grab附加点之间的距离将用于计算更快的投掷速度。onGrabColli..

2020-06-27 23:39:36 135

原创 VRTK_InteractableObject脚本属性详解

Disable when Idle:勾选上后运行,默认VRTK_InteractableObject脚本是UnEnable状态,只有当手柄或者射线与其进行交互的时候,脚本才会变成Enable状态。(为了防止当前物体和其他物体进行交互)IsGrabbable:是否能够被抓取。Hold Button To Grab:如果选中此项,则需要持续按住控制器上的抓取按钮以继续抓取。如果取消选中此选项,则抓取按钮会切换抓取操作,只需按一下按钮即可抓取,再按一下钮即可释放。StayGrabbedOnT..

2020-06-27 23:38:50 1542

原创 VRTK中代码切换抛物线和直线中的坑

如果手柄上同时挂载直线和抛物线的脚本时,并且需要通过代码去切换直线和抛物线的时候,需要将最开始不使用的脚本UnEnable不然代码初始化的时候会报错。

2020-06-27 23:37:47 249

原创 VRTK_BodyPhsics 脚本属性介绍(实现头盔带有物理效果)

(加上这个脚本后,头盔会带有物理效果,这个脚本可挂载在任何地方。)后续攀爬、头部穿墙、位置回弹等效果会需要这个组件

2020-06-27 23:34:46 664

原创 VRTK实现瞬移(两种瞬移方式)

一般瞬移是配合抛物线一起使用。(直线移动也行!)实现简单瞬移的两种方式添加脚本VRTK_HeightAdjustTeleport(眨眼渐变瞬移组件)。配合抛物线就可以瞬移了。传送会受到VRTK_Pointer脚本的EnabkeTeleport影响。不勾选瞬移是不起作用的。添加脚本VRTK_DashTeleport脚本(这个脚本瞬移带有位移过程,可能会有用户体验出现头晕)。 Snap to Nearest Floor:勾选的话,瞬移会受到附近平面影响。(类似凹凸不平的地面瞬移时,会有一个根据平面过度

2020-06-23 14:33:48 1924 1

原创 VRTK_BezierPointerRenderer脚本属性详解(抛物线脚本)

(由于大部分属性和直线的一样,这里就不一一列举了!!!)MaximumLength:X代表抛物线离自己的远近,一般用于防止新手用户瞬移时出现跳跃距离过远而产生懵逼的状态。Y代表抛物线的高度,一般给默认设置就行。Tracer Density:密集程度。(拿默认的抛物线来说,这里设置的数量越大,小球的数量就越多。)CursorRadius:cursor的半径。HeightLimitAngle:高度限制角度。(手柄向上时,抛物线的角度。)Curve offset:射线的偏移。RescaleTrace

2020-06-23 12:37:16 668

原创 VRTK射线和UGUI进行交互

手柄上挂载VRTK_UIPointer脚本.需要进行交互的画布Canvas上挂载脚本VRTK_UICanvas脚本.VRTK_UIPointer脚本属性详解Activation Button :激活按钮。Activation Mode:激活模式,一直激活,按下激活,开关激活。Selection Button:选择按钮。ClickMethod(点击方法):点击按下,抬起。Attempt Click On Deactivate:尝试点击关闭。click after hover durati.

2020-06-23 12:32:21 1243

原创 VRTK射线射中物体给物体描边

:将需要进行描边的物体上加上VRTK_OutlineObjectCopyHighlighter组件。创建射线监听脚本. public VRTK_Pointer leftContrlPointer;//拿到pointe组件//注册射线事件 protected virtual void OnEnable() { pointer = (pointer == null ? GetComponent<VRTK_DestinationMarker>().

2020-06-23 12:25:41 643

空空如也

空空如也

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

TA关注的人

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