Unity实现设计模式——状态模式状态模式最核心的设计思路就是将对象的状态抽象出一个接口,然后根据它的不同状态封装其行为,这样就可以实现状态和行为的绑定,最终实现对象和状态的有效解耦。在实际开发中一般用到FSM有限状态机的实现,GF框架中的FSM和流程控制就是基于这个原理实现的。1.State(状态的抽象基类)publicabstractclassState{protectedContextm_Context=null;publicState(ContexttheContext){m_Context=theContext;}publicabstractvoidHandle(intValue);
摄像机DemousingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassCameras:MonoBehaviour{ publicTransformtarget; publicfloatxSpeed=200,ySpeed=200,mSpeed=10; publicfloatyMinLimit=5,yMaxLimit=50; publicfloatdistance=50,minDistance=2,maxDistance=100; publicboolneedDamping=t
基于Unity的Hololens2访问下载链接实现Json、模型以及视频流传输(个人Hololens2进阶开发总结)前言基于Unity的Hololens2与服务器交互一、Web端的下载链接二、Json文件的读取1.Json格式2.读取和解析Json3.发送下载请求4.视频展示5.AssetBundle资源更新与展示6.项目演示总结前言在之前三期的教学中,我们学会了如何解决在Unity编辑器下开发HoloLens2遇到的一些Bug(文件存储路径问题、读取Json文件问题以及AssertBundle资源管理问题),下面就通过我在项目中做出的一些成果来进行一次实战。前三期教程在下面:HoloLens
目录一、适配vs二、初识Unity2.1unity核心模块2.2Unity基本操作和场景操作2.3世界坐标系和局部坐标系2.4工具栏QWER三、基础知识3.1基本组件3.2刚体组件3.2.1获取刚体组件3.2.2给刚体施加力3.3 三维向量Vector33.4 通过按键控制左右运动3.5控制相机位置和跟随3.6物体旋转3.7碰撞检测3.8触发检测四、RollBall游戏开发案例一、适配vsEdit->Preference->ExternalTools、二、初识Unity2.1unity核心模块(1)Project:工程面板,存放工程的各种资源。声音、模型、场景、材质等。(2)Hierarchy
目录一、软件安装1.UnityHub官网安装语言设置其它设置2.Unity使用UnityHub安装Unity语言设置3.plasticscm-cloud-windows4. blender官网 下载安装语言设置下载CatsBlenderPlugin插件安装插件二、原神人物模型下载、格式转换1.模之屋官网下载2.pmx转fbx格式三、使用Unity为模型添加动画1.Mixamo官网下载2.UnityHub创建项目3.Unity添加动画修改类型、材质 修改shader修改动画合体循环播放4.视频效果一、软件安装1.UnityHub Unity是一种跨平台的实时开发引擎和集成开发环境(
效果: 一:了解IK1.反向动力学IK(Inversekinematics)可以依据某些子关节的最终位置、角度来反推节点链上其他节点的合理位置,Unity中设置了Avatar的人形角色都支持IK功能。2.使用IK功能需要在Animator视窗对应的层里勾选IKPass,勾选后每帧会调用脚本中的OnAnimationIK()。有五个节点进行设置:左手、右手、左脚、右脚、头部。 注意:人物骨架Rig中AnimationType的设置:Humanoid3.本文涉及API设置Positon及其Weight(权重)Animator.SetLookAtWeigh(floatweight);Animato
效果图与该类红绿灯相似。前提准备首先在场景中,创建一个正方体(灯座),球体(作为灯),把其放置成红绿灯结构。创建四个材质球,基础色分别赋为灰色,红色,黄色,绿色。其中灰色作为灯座颜色,红、黄、绿材质球作为红绿灯变换的材质。基本思想我们日常的红绿灯,是变红,3秒黄灯,变绿,3秒黄灯,变红……,周而复始。这一看就是要用到循环,由于红绿灯一天都在工作,所以循环应该没有结束条件。我们创建了三个颜色的材质球,只要按着红黄绿黄红黄绿……分别赋给灯就行啦,如何在规定时间完成一个操作,这就要用到了Invoke()函数。publicvoidInvoke(stringmethodName,floattime);描
由于Dots的限制太多,对于需要dlc或热更的项目来说,Dots就爱莫能助。能不能不用Entities,只用EntitiesGraphics呢?当然是可以的,EntitiesGraphics背后使用的接口就是BatchRendererGroup; 自定义BatchRenderGroup合批渲染,可以参考Unity官方文档:InitializingaBatchRendererGroupobject-Unity手册1.创建一个BatchRenderGroup对象和GraphicsBuffer:m_BRG=newBatchRendererGroup(this.OnPerformCulling,Int
Unity开发项目总结的几项优化点,比较适合中小项目优化,拿来即用,大型项目需要考虑定制化渲染管线、剔除、光照等。针对优化更多的还是需要结合项目去考虑。一、模型Read/Write:同Texture,若开启,Unity会存储两份Mesh,导致运行时的内存用量变成两倍。Compression:MeshCompression是使用压缩算法,将Mesh数据进行压缩,结果是会减少占用硬盘的空间,但是在Runtime的时候会被解压为原始精度的数据,因此内存占用并不会减少。需要注意的是有些版本开了,实际解压之后内存占用大小会更严重。Rig:如果没有使用动画,请关闭Rig,例如房子,石头这些。Ble
【Unity学习】关于串口通信插件SerialPortUtilityPro的简单使用个人案例前言需求分析串口发送数据串口接收数据并解析结语前言关于插件资源,请去资源商店购买或使用其试用版,本帖不提供下载。因为项目需要涉及到了串口通信相关的开发任务,本人之前没有涉及到串口相关的知识,所以此贴仅为个人记录使用经验帖。关于插件的具体使用,插件中有具体使用教程。需求分析项目要求发送16进制数据给对方并实时接收其发送过来的16进制数据进行解析。发送的16进制格式:B5A6A20101A5EA接收的16进制格式:B5A601100100025FFEEC06ED4A3375300066073E1D9F前两位