草庐IT

Unity | 渡鸦避难所-6 | 有限状态机控制角色行为逻辑

1有限状态机简介有限状态机(英语:finite-statemachine,缩写:FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型在游戏开发中应用有限状态机,能够将复杂的行为逻辑分解为一组简单的状态和转换规则,每个状态都可以独立地处理其逻辑,使代码更加结构化和组织化。同时可以方便的添加新的状态和转换规则,以适应游戏的需求。而且避免了在每帧中检查所有可能的行为,只需要处理当前状态的逻辑Unity中的AnimatorController使用状态机来管理各种动画状态和它们之间的过渡。但角色处于不同的状态时,除了播放对应的动画外,也会执行相关的逻辑,使用状态机来控

Unity无限滚动列表

前言怎么制作一个无限滚动列表,首先说到滚动列表我会先想到使用ScrollView来实现,但在进行限制“弹性的”模式下每次更换列表最上或者最下面数据的位置时整个列表会出现闪屏的效果。所以本篇使用的是鼠标点击,拖动事件接口模拟窗口滚动效果,然后根据位置判断来进行位移的方式来实现的无限滚动效果,具体效果如下:效果图一.首先完成UI方面的搭建创建一个Image组件,并且添加遮罩Mask设定要显示的区域(后面记得把显示遮罩图形取消勾选),将要实现滚动效果的组件放置在这个问题的子物体中(当然也可以等一下直接实例化生成)二.通过接口实现拖动效果:将代码挂载在父物体“Content”上。将要滑动的子物体拖动赋

【Unity】利用二进制数据持久化 【练习学习项目/有不足之处欢迎斧正/侵删】

1.为编辑器菜单栏添加新的选项入口通过Unity提供的MenuItem特性在菜单栏添加选项按钮特性名:MenuItem命名空间:UnityEditor要求:一定是静态方法;新建的这个菜单栏按钮必须有至少一个斜杠不然会报错它不支持只有一个菜单栏入口;这个特性可以用在任意的类当中[MenuItem("GameTool/Test")]privatestaticvoidTest(){Directory.CreateDirectory(Application.dataPath+"/测试文件夹");AssetDatabase.Refresh();}同时,通过以上方式,可以调用后自动刷新窗口类名:Asset

Unity脚本语言的笔记

Unity使用C#作为游戏脚本的开发语言。C#语言作为全功能语言,功能强大,IDE友好,开发效率和质量有保证。但C#作为动态语言,需要虚拟机解释运行,因此引入了一些其它的问题。Unity的脚本的构建和运行方案基于Mono虚拟机对开发者而言,安装包大,依赖多,运行期效率低。对Unity来说,需要自行完成Mono在多平台的移植和维护,自身投入的工作量较大。运行期,需要MONO虚拟机来执行C#的库,运行效率一般。基于IL2cpp将IL转换为C++代码,然后翻译为对应平台的二进制机器码。对于开发者而言,有助于缩小安装包,减少依赖项,提升运行期代码的执行效率,但需要放弃C#语言自身带来的动态特性。基于B

Unity中设置canvas UI尺寸为手机大小(也适用于更改其他设备尺寸)-- transform canvas size to iPhone

1.效果图2.进入Game窗口,点击“FreeAspect”,在其下拉列表中选择所适配的设备型号:iPhone13等没有的可以选123. 选择后返回Scene,UI的Canvas画布成功更改尺寸 

Unity针对XBOX,SWITCH,PS5手柄的适配踩坑

前言:记录一点最近在做手柄适配问题的踩坑。这里推荐一款Unity做手柄适配的插件->RewiredRewired官方文档链接RewiredDocumentation|SupportedControllersRewired插件里面有个是Player类,这个类获取到当前玩家的输入设备,输入的值等。我用Player.GetAxisRaw和Player.GetAxis发现对手柄而言,这两个API得到的结果都一样,只是在键盘处理上不同,结果如下区别:PS5手柄摇杆灵敏区间值假设图中的圆代表手柄的摇杆,索尼手柄摇杆的灵敏度严格按照圆的方程即,包括圆内的任意一点。XBOX和SWITCH摇杆灵敏区间值XBox

unity发布web及IIS部署总结

后台服务配置后台服务部分的需要配置跨域设置,主要以IIS7.0为例,首先在需要调用的接口服务中添加HTTP相应头文件,进行跨域设置:      将以下配置逐个添加至配置项中:"Access-Control-Allow-Credentials": "true", "Access-Control-Allow-Headers":"Accept,X-Access-Token,X-Application-Name,X-Request-Sent-Time", "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allo

Unity Text文本实现打字机(一个一个出来)的效果

UnityText文本要实现打字机,即一个个文字出来的效果,可以通过代码把text文本字符串拆成一个个字符然后添加到文本中。具体实现:新建一个控制脚本:TypewriteController.cs,并编写以下代码:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassTypewriteController:MonoBehaviour{publicfloattypingSpeed=0.1f;//每个字符的显示间隔时间privatestringf

windows彻底卸载unity

1.控制面板卸载 双击打开桌面的控制面板,选择卸载程序,选中Unity和UnityHub右击卸载。2.清除unity的注册表在运行中输入“regedit”双击打开注册表界面删除HKEY_CURRENT_USER\Software\Unity下所有项删除HKEY_CURRENT_USER\Software\UnityTechnologie下所有项3.删除unity安装文件到Unity安装位置,删除Unity和UnityHub安装根目录4、C:\ProgramData文件夹下删除Unity(注意C:\ProgramData是隐藏目录)

Unity 3D游戏开发+脚本编程完整指南:Unity脚本概览-控制物体的运动

教程相关资源Unity3D游戏开发+脚本编程完整指南(工程文件+PPT).zipUnity脚本概览脚本编写并不困难,但是如果直接从细节开始讲起,会让读者难以看到脚本编程的全貌。因此本章不急于阐述脚本编写的细节,只介绍简单的修改物体位置、处理用户输入和检测碰撞的方法,让读者用最简单的方式做出第一个3D滚球跑酷游戏,体会脚本编程的思路和整体方法。1.1控制物体的运动仅通过控制物体的位置,就能做出好玩的小游戏。本节将详细讲解创建脚本、改变物体位置和处理用户输入等基本操作,并对容易产生误解的地方做出提示。1.1.1新建脚本首先在场景中新建一个球体,接着新建脚本并挂载到该球体上。新建脚本有两种方法。第一