- 博客(43)
- 资源 (3)
- 收藏
- 关注
原创 AssetBundle加载(二) WWW加载
WWW加载本地assetBundle的文件,通过XML动态修改里边的数值之前介绍过什么是AssetBundle和PC执行文件的AssetBundle加载方式传送门现在通过WWW的方式加载本地的assetbundle文件(WWW已经被 UnityWebRequest替换掉,两种方式都可以加载)一、webgl加载 AssetBundle 所需要的配置的平台PC加载的AssetBundle的时候需要打包成Windows,而webgl加载AssetBundle的时候需要打包成webgl环境如下:usi
2022-05-02 19:24:25 413
转载 Unity数据加密丨(二)dll文件加密
本节目标,加密dll文件,供Unity使用。 加密思路: dll文件因为要给Unity使用,因此不能加密/混淆 public变量/方法。如果混淆了public变量/方法,Unity就不能识别到了。因此我们只混淆私有变量/方法,达到加密目的。若部分私有的变量/方法也不想被混淆,那就声明成protected,这样也不会被混淆。 一、加密软件的安装 我们采用 Dotfuscator Professional Edition 4.96 软件进行加密。 下
2022-04-25 14:04:49 3145
原创 c# 集合实现图书管理系统
using System;using System.Collections.Generic;using System.Collections;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Lesson集合_{ //图书管理系统 主要是增删改查 class BookInfo { public List<Dictionary<string
2021-10-24 13:35:56 627
原创 小球弹弹弹
闲余之际,弄了一下小球在一定的范围之内打方块的小游戏,为了测试一下,没有注意物体的外观和物体的起名一 创建项目首先先把场景搭建好,给小球搭建好可以移动的范围,给小球添加上刚体,物体进行碰撞触发的必要条件,约束好小球的三个轴(x,y,z)的旋转 和 物体z轴的移动最下方的小cube也需要添加上刚体(rigidbody), 避免两个物体碰撞导致方向发生偏转因为只移动x轴,所以其他的轴 和 旋转都可以约束一下二 添加代码添加上小球移动的脚本,碰撞之后旋转方向 和 销毁 cubeu
2021-09-09 16:35:13 171
原创 怪物追击玩家的功能
创建玩家和小怪球为玩家,cube为小怪为了 方便测试小怪的角度就给小怪添加了一副眼镜,capsule是空物体,是用来计算小怪和玩家的角度,放在小怪正前方一点using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class Text : MonoBehaviour{ // 获取目标点的坐标 pu
2021-09-08 16:11:32 364
转载 HTC VIEW丨14. 使用激光指针与物体交互:一直显示激光——(VR交互机制3-Use)
Use两种实现方式: 1、使用手柄点击,按下Trigger键触发 2、使用激光指针悬停在物体上,按下Trigger键 2019.06.26更新: 写了一套逻辑,只要勾选isHTC,自动帮你把UI从PC版转成VR版。取消勾选,程序回到PC版。 例子:实现手柄射线与物体的交互 1、VRTK的初步设置 2、给要捡起的cube进行配置(2-4完成射线触碰物...
2021-08-14 09:54:55 464
转载 HTC VIEW丨13. 替换手部模型、精确手抓握动作
一、基础配置 基础配置 二、替换手部模型 1、将左右手模型放到LeftController、RightController下,调整手模型位置 2、将下方A或B代码挂载到手模型上,并赋值状态机 3、实现能抓取物体 a、左、右手Left/RightController下新建空物体 AttachPoint ,挂载Rigidbody,取...
2021-08-14 09:52:14 627
转载 HTC VIVE丨12. VRTK抓取机制——(VR交互机制2-Grab)
设置物体被抓取的位置及朝向 Grab Attach Mechanic Script:抓取机制的设置 Precision Grap:是否采用精确抓取。如果不勾选,抓取物体和手柄保持一致。选取后,抓取时会在碰撞点抓取,和下条配合使用 Right / Left Snao Handle:左右手抓取的点,该物体要设置为被抓取物体的子物体,可选择Hierarchy中VRTK下的下...
2021-08-14 09:50:05 710
转载 HTC VIVE丨11. 使用VRTK实现与物体的交互
要点 1、可实现的效果:攀爬、双手持握、缩放物体等 2、VRTK中与物体交互的三种类型:Touch、Grab、Use Touch:手柄悬停在物体上面,跟物体进行碰撞或接触 Grab:按动某一定义的按键,抓取物体 Use:通过一个事件自定义一个操作 VRTK实现与物体的交互方法 一是手动挂载相应脚本,实现物体交互 二是通过VRTK的UI配置窗口,通过在配置窗口点选想要的操作,即可配制出想要的操作 方法一:挂载脚本 本...
2021-06-04 10:18:00 1897 1
转载 HTC VIVE丨9. VRTK瞬移的实现与瞬移区域的设置——基于[CameraRig]
瞬移实现的机制 瞬移基于Collider,和实现了瞬移功能的组件。 因此,只需给能在其上瞬移的物体添加collider,在场景加入实现瞬移的组件即可。 瞬移功能的组件: ①、VRTK_Basic Teleport:基础瞬移效果 ②、VRTK_Height Adjust Teleport:自适应高度瞬移 ③、VRTK_Dash Teleport:松开TouchPad时,人物快速移动到选定的...
2021-06-04 10:14:53 740
转载 HTC VIVE丨8. VRTK的初步设置
1、删除默认相机,拖入[CameraRig] 2、新建[VRTK]空物体,加入VRTK_SDK Manager组件: Quick select SDK选择Stem VR Simulator是模拟器,可在无头盔时使用 3、点击Auto Populate Linked Objects 4、设置手柄 在[VRTK]下新建两个ganmeObject,重命名“LeftCo...
2021-06-04 10:10:44 367
转载 HTC VIVE丨7.手柄与UI碰撞交互,手柄按键高亮、显示文字提示
一、VR中的UI交互 实现效果: 手柄碰到要交互的UI,按下Trigger,执行UI上的方法 实现步骤: 1、新建Canvas,Render Mode改为World Space,缩放0.003,分辨率3 2、新建Button(需有Button组件),Button添加boxcollider、UIElement 3、执行的方法放到UIElement上 二、手柄按键高亮、按键文字提示 1、效果展示 2、代码控制 using
2021-06-04 10:02:55 536
转载 HTC VIVE丨6. Linear Drive与Circular Drive的使用
Linear Drive简介 Linear Drive:线性驱动 Circular Drive:滑行驱动 LinearDrive和CircularDrive一方面实现物体按照设定方式进行运动,另一方面输出数值到LInearMapping LinearMapping提供0-1之间的数值,可用其改变其他物体的属性,如位置,时间等 属性 Start 、End Position:开始和结束点。该两点组成一条直线。Sphere起止点就在该两点上。刚运行时,Sphere会自动调整位置到
2021-06-03 18:11:54 406
转载 HTC VIVE丨5. ItemPackage实现配套物品的同时抓取
。 小提示:选中左侧目录,可快速找到所需内容 : 一、效果展示 拿起物品,桌面产生该物品轮廓。将手柄放到一定位置,可放下该物品 实现该效果用到的组件: ItemPackage:交互过程中用到,设定轮廓gameObject、预览ganmeObject、放在手里的预制体,类似物品的列表ItemPackageSpawner:实现交互过程的逻辑,基于生成机制。完成碰撞时生成物体放在手里,生成轮廓,再碰撞时放...
2021-06-03 18:01:26 191
原创 c# 集合
一集合的概念:集合提供一种灵活的处理方法。与数组不同,处理的对象组可根据程序更改的需要动态地增长和收缩。 对于某些集合,您可以为放入该集合的任何对象分配一个“键”,以便使用该键快速检索对象。集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(list)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。...
2021-06-03 17:26:33 2300
原创 c# 接口和泛型
一 接口(关键字 interface)1、接口的概念接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。接口使得实现接口的类或结构在形式上保持一致。抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。2、接口的属性1、 实现接口的任何类或结构必须实现其所有
2021-05-22 17:45:59 2027
原创 c# 抽象类 和虚方法的区别 静态
一 抽象类(关键字:abstract)抽象类的特点:一:不能被实例化。二:类中的抽象方法在继承的子类中必须重写。(需要用 override 重写)三:类一旦有抽象方法出现,那这个类必须定义为抽象类。四:如果一个抽象子类继承了一个抽象父类,则子类里面可以不用实现父类里面的抽象方法也可以实现父类中的抽象方法。抽象方法是一种特殊的虚方法,它只起声明作用,所以只加一个“;”号,一定不能带实现部分。例如:using System;using System.Collections.Generic;
2021-05-14 17:41:04 550
原创 c#方法的重载和递归 特殊的引用string,stringbuilder
一、不可变类型stringstring 是特殊的引用类型值类型 开辟的是不是一个空间,相互不影响,引用类型开辟的是同一个空间,相互影响字符串做修改操作的时候,都会开辟一个新的空间。引用了类型比较的是 地址。值类型比较的是 数值。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace lesson02{
2021-04-26 20:58:42 322
转载 HTC VIVE丨3. 基于Player的人物传送(InteractionSystem)
StramVR SDK下包含InteractionSystem交互系统,本章介绍该交互系统传送的实现。该系统的核心是:PlayerPrefabHandTeleport(传送)Teleport PointTeleport Area一、Player使用Player不需要像CameraRig一样先进行配置。Player已经配置好了。1、BodyCollider和HeadCollider它们分别为身体和头部的碰撞器,可根据此碰撞信息不同,造成减血不同等效果。2、Hmd Transform
2021-04-14 20:26:25 375
转载 HTC VIVE丨4. 人物基于Player,实现与物体的交互
重要知识点:1、交互的基础:Interactable组件2、手柄高亮的实现:ControllerHoverHighlight组件3、物体如何相应Hand交互事件:InteractableHoverEvents组件和InteractableButtonEvents组件4、抓取物体:Throwable组件5、[RequireComponent]标签的使用6、如何为物体添加Physics Material一、Interactable组件所有交互最基础的组件(所有要交互的UI、物体必添加)。添加后
2021-04-14 20:15:08 467
转载 HTC VIVE三.手柄与UI碰撞交互,手柄按键高亮、显示文字提示
一、VR中的UI交互实现效果:手柄碰到要交互的UI,按下Trigger,执行UI上的方法实现步骤:1、新建Canvas,Render Mode改为World Space,缩放0.003,分辨率32、新建Button(需有Button组件),Button添加boxcollider、UIElement3、执行的方法放到UIElement上二、手柄按键高亮、按键文字提示1、效果展示2、代码控制using UnityEngine;using Valve.VR.InteractionSystem
2021-04-11 22:25:14 996 4
转载 SteamVR 1.x丨(二)实现凝视效果——基于[CameraRig]
本节目标通过跟踪头部运动,设置一个代表光标的准星,碰触物体后改变位置和朝向,贴近被凝视物体。物体a被凝视一定时间后消失,物体b被凝视一定时间后被击中实现原理1、基于射线原理,Update—>Raycast2、准星或十字线设置为相机子物体,等待操作的动画为圆环逐渐填满3、被凝视的可是UI,也可是3D物体4、击中物体一段时间后,可完成相关操作,如消失、缩放、材质变换等5、元素一般分三种状态:准星进入、准星停留、准星退出(Collider)实现步骤1、Canvas建立Canvas,Ren
2021-04-11 22:19:57 903
原创 HTC VIVE (一)环境配置
1.下载SteamVR与VRTK2.将SteamVR/Perfab/CameraRig拖入场景中,将场景中的原生Camera删除、3.新建一个空物体并挂载VRTK_SDKManager4.新建一个空物体并挂载VRTK_SDKSetup,在QuickSelect处选择SteamVR,并将CameraRig拖到该物体之下作为其子物体(如果需要不在VR设备环境下进行测试则将QuickSelect处选择Simulator即可,其他CameraRig及Left rightController设置参照VRTK/
2021-04-11 20:03:05 891
原创 c# 堆和栈
堆和栈一 :什么是堆和栈线程堆栈:简称栈 Stack。托管堆: 简称堆 Heap。使用.Net框架开发程序的时候,我们无需关心内存分配问题,因为有GC这个大管家给我们料理一切。硬盘:数据持久化(就是说 关机之后再开机数据还有,但是内存断电以后数据不再保留)开机等待的原因就是 等硬盘中的数据传输到内存中 ,数据到了内存中才能被CPU调用当我们编写程序的时候,操作系统把我们编写的程序分五个区 分配在内存中。这五个区是:栈区、堆区、常量区、静态区、代码区 ,static的变量放在静态区栈 (St
2021-04-10 17:13:37 4614
原创 c# 属性 数据类型 (堆和栈)
一 属性:为类中字段手写Get方法和Set方法是很麻烦,所以程序帮我们自动的封装出这个两个方法。 class Car { private string _name; public string V() { return _name; } public void M(string _newName) { _name = _newName;
2021-04-10 16:03:57 350 1
原创 c# 面向对象(OO思想)
一 什么是OO(Object oriented)翻译过来就是面向对象,分为OOA面向对象的分析,OOD面向对象的设计,OOP面向对象的实现二 c#中四个访问修饰符public:访问修饰符允许一个类将其成员变量和成员函数暴露给其他的函数和对象,任何公有成员都可以被外部的类访问。private:只有在类的本身可以存取(只有在对象内部的时候可以访问)。protected:只有该对象及其子类对象可以访问。internal :同一个程序集的对象可以访问(内部访问,只限于本项目内访问,其他的不能访问
2021-04-07 21:14:16 661 2
原创 c# 练习题(一)
1从控制台输入3个数字a,b,c,用逻辑运算符判断一下a是否 是最大的数,如果是输出true,否则输出false。 int a = 6; int b = 3; int c = 0; if (a>b && a >c) { Console.WriteLine("Yes"); } else
2021-03-15 17:41:43 837
原创 c#基础
一 进制十进制中10,用其他进制的表示方法十 进 制: 直接写 — 10八 进 制: 在前面加0 — 010十六进制:在前面加0x — 0x10位:一串数字 从右向左一次是 0位 1位 2位 ……N位连除倒取余: 十进制的 57,转换成二进制 1110012| 572| 28 1 ↑2 |14 0 ↑2| 7 0 ↑2| 3 1 ↑2| 1 1 ↑0 1 ↑按权求和
2021-03-15 11:27:08 349
原创 c# 九九乘法表 ref out params
九九乘法表的打印下面展示一些 内联代码片。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp3{ class Program { static void Main(string[] args) { for (i
2021-02-23 09:52:43 223 1
原创 人事面试问题大全
重点问题:1.自我介绍一下.2.上家公司是做什么的?公司多少人?属于哪个部门?部门几个人?3.怎么和产品(测试)沟通的?4.为什么从上家离职?5.你对加班有什么看法?6.希望待遇多少?你最低的薪金要求是多少?7.上家公司待遇多少?税后多少?8.哪个项目做的最好?描述一下,这个项目的亮点是什么?难点是什么?几个人做的?9.能接受外派吗?10.你有什么问题要问吗?11.我可以跟你的前任上司联系一下吗?12.何时可以到职?13.五年职业规划?从现在开始算,未来的五年,你想自己成为什么样子
2021-02-06 13:08:05 1595 4
原创 c# 委托
什么是委托在汉语中委托是把事情托付给别人或别的机构办理的意思在c#当中,委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。类似于 c/c++当中的指针在C#中使用delegate关键字定义委托,然后使用我们熟悉的函数调用的语法来调用委托委托可以把一个静态或者是非静态的方法赋值给和他类型一样的一个委托对象把方法赋值给委托对象,也可以称为委托对象绑
2021-01-30 14:14:51 201 2
转载 科技人文
有趣的灵魂,聊科技人文。本系列博客地址:传送门有人花了十几万,自己的对象却和另一个人去约会有位宠物店老板,准备再借很多钱,给把自己当作备胎的人有个不惑之年的人,准备为对方继续单身下去…我们今天就来聊聊,人的情绪——感动。感动如何产生的真情包括痴情专一,永不言弃、坚守承诺,誓死相依、执子之手,与子偕老、不离不弃,不掺杂任何其他东西,包括一切利益。真情就是一个人无怨无悔的为另一个人付出的一切。这才是真情。在真情中往往出现的最多的是感动。有时候人爱上另外一个人,只是一个感动的瞬间。而这个感动却是
2021-01-29 14:00:01 313
原创 unity c# 单例脚本
单例模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。共有二十三种设计模式,菜鸟教程上边对这么模式介绍和用法还有六大原则介绍的很详细链接: https://www.runoob.com/design-pattern/design-pattern-intro.html.un
2021-01-26 14:25:48 815
原创 FSM有限状态机
什么是FSM有限状态机(Finite-state machine)是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在游戏中经常看到的一些AI,如敌人巡逻,巡逻过程中看到玩家就追击,追上了就攻击,追不上并且有了一定的距离就返回去继续巡逻。Animator就是一个简单的状态机如果不做任何处理的话,切换动画的话,一般就是直接animator.setXXX(),这样切换动画,耦合性高,可扩展性差,硬伤。几个动画还好,动画多了。。再来个
2021-01-22 17:55:04 3315
原创 场景优化(一),UGUI的优化
开发过程中四个常见的问题过多的GPU片段着色器使用率(如屏幕填充率过高)过多的CPU时间开销在重建一个画布上过多的CPU时间开销在生成顶点上(通常是文本)过多的画布重建次数针对这四个问题来分组介绍优化策略网格重建优化策略屏幕填充率优化策略合批优化策略字体优化策略滚动视图优化策划其它优化策略一:屏幕填充率优化策略(OverDraw)1 删除多余的UI元素:在制作UI的时候,一定要检查每一层的UI图层,删除没有用到的UI;2 减少Rebuild的频率:将动态UI元素(频繁改变例如
2021-01-20 15:56:08 468
原创 Reflection Probe制作玻璃,水面反射效果
Reflection Probe这个和我之前插件效果是同时使用的,主要是以调节场景效果为主的。一:添加反射球在场景当中创建一个空物体Empty 在这个空物体身上添加组件Reflection,根据你场景的大小来调节这个反射的大小,如果说是隔断多的话需要多添加几个,调整好角度避免反射看着假的现象。Type :Baked 烘焙Realtime:实时渲染Custom:自定义Runtime settings:Importance:主要是在决定一个物体同时受到几个reflectionProbe影响时
2021-01-18 18:22:55 890
转载 科技人文
这是我朋友发表的,觉得有道理就转载了 ^ v ^涂磊:在婚姻和物质的这个问题上,现实生活当中大概有这两种男人: 第一种男人,他特别不喜欢女人跟自己谈钱,你只要是谈钱你就很物质。他甚至会抱怨现在拜金的女生太多了,我已经结不起婚了。但是当女生提出,说我不要这些东西的时候,这男生会说:这是应该的,你不是爱我的人嘛,你爱我的人嫁给我就好了,干嘛在乎我的钱呢这是第一种男人。 还有第二种男人,他会主动跟女生谈钱,他觉得娶一个女人进屋,房子、彩礼、车、婚纱、戒指,等等。都是我
2021-01-18 16:58:44 102
原创 AssetBundle 打包 本地加载(一)
一 什么是AssetBundle?assetbundle 是一个包含平台特定资产的存档文件(模型,纹理 ,预设体,音频剪辑,甚至整个场景),都可以在运行时加载。优点:可用于可下载内容(DLC),减少初始安装大小,为最终用户的平台优化加载资产,减少运行时的内存压力。ab包一般是在 服务器 本地 和内存的加载二 部署...
2021-01-18 16:47:34 432
原创 unity 插件之灯光 效果 调节
*Post-process插件的使用此效果不能用于webgl1.0 如果想打包成webgl必须在playersetting中移除webgl1.0一 需要在unity菜单栏Windows下的Package Manger 中 搜索这个插件(如果没有Package Manger这个选项,重启unity或者是重新创建一个场景尝试)导入到场景当中去二 在摄像机上边添加Post-process Layer这个组件 里边的layer层级选择Postprocessing 层级如果没有这个层级的话 也可以自己创建一
2021-01-15 14:15:14 3615 8
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人