Unity
文章平均质量分 64
忧生乐死
这个作者很懒,什么都没留下…
展开
-
迅雷下载(断点续传)
【代码】迅雷下载(断点续传)原创 2022-09-21 10:56:35 · 140 阅读 · 0 评论 -
Unity强联网之解决Tcp粘包方案(原理篇)
所有强联网游戏都会遇到一个问题,那就是Tcp的粘包。既然想要解决这个问题,那么就需要知道问题是怎么产生的,然后才能对症下药。众所周知,Tcp的Socket当收到数据时,操作系统会将接收到的数据存在接收缓存区中,此外还有一个发送缓存区。这两个缓存区程序不能直接对其操作,只能通过socket.Receive,socket.Send等方法间接操作,并且Receive方法只是将接收缓存区中的数据提取出来;而Send方法也只是将数据写入发送缓存区中,具体操作还是由操作系统负责。OK,扯了这些,那么和粘包有啥关原创 2021-03-25 00:34:16 · 633 阅读 · 0 评论 -
消息事件系统(案例)
消息事件系统在游戏开发中,客户端内部有一套自己的消息事件系统是很有必要的,它会极大的帮助代码解耦,同时很方便的对自定义的消息类型进行绑定事件和在适当的时候调用。概括来说,以下消息事件系统的原理大致是用一个hashtable来存储事件类型以及事件类型所对应的回调方法,这个回调方法可以添加多个,同时也可以在需要的地方删除一个或多个。如果读者有更好的做法或方案,欢迎在评论区留言。(注:该文章是本人根据姜雪伟老师所著的《unity3d实战核心技术详解》所写,仅作为一种消息事件系统的方案供感兴趣的童鞋参考和了原创 2021-03-24 23:32:37 · 462 阅读 · 0 评论 -
NavMeshAgent寻路扩展组件
NavMeshAgent官方扩展组件简要该组件算是unity官方提供的专门针对NavMeshAgent自动寻路系统做的一个扩展插件;针对于Unity内置的寻路系统,该扩展组件提供了额外的功能,例如可以动态Bake地形;动态拼接地形,物体可以从平地移动到墙面上等。本人从这里学习了相关的知识。此博客只是当做笔记给需要此功能的人做个学习例子(如有错误欢迎指出,持续更新中)使用方式将官方扩展组件下载并解压之后将Assets文件夹下所有的文件拷贝到工程中(Unity版本最低为5.6)例子1.可以设置烘焙自原创 2020-11-10 14:00:08 · 793 阅读 · 0 评论 -
获取文件MD5码
void GetMD5(string path) { if (!File.Exists(path)) { Debug.Log("不存在该文件"); return; } FileStream stream = File.OpenRead(path); MD5 md5 = new MD5CryptoServiceProvider(); byte[] v...原创 2020-08-29 15:40:30 · 164 阅读 · 0 评论 -
Unity从网络中获取图片加载到物体上
Unity使用UnityWebRequest从网络中获取图片并加载在2D/3D物体上首先从网络中获取资源使用的是协程(从来没遇到在主线程中下载资源的情况)如果图片附加到2D/3D物体上出现红色问号,要么是路径有问题,要么是代码逻辑有问题(协程内部的逻辑有没有问题,调用协程有没有问题(是用StartCoroutine来调用协程的,别傻乎乎的像调用普通的方法一样去调用协程,那样不起作用(我就犯过这个错)))如果是从网页中随便找的一张图来给物体赋值的话,要检查这个图片的地址有没有问题(图片地址一般是.jpg原创 2020-08-29 15:06:05 · 2171 阅读 · 1 评论 -
Unity使用ScriptableObject进行本地存储
本人在B站Up主M_Studio的视频中学习了使用该方法进行本地存储,下面是代码和实现效果原视频链接:单个物品的属性以及信息:using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// 鼠标右击会显示该菜单/// </summary>[CreateAssetMenu(fileName ="New Item",menuName ="Inven原创 2020-06-10 17:01:05 · 1135 阅读 · 0 评论 -
UnityAStar算法入门解析(A*算法寻路)
A*算法广泛用于MMORPG游戏的寻路功能,本人在B站Up主唐老湿的视频中学习了一段时间,总结出其原理和实现过程。视频链接:公式:f(寻路消耗)=**g(自身离起点距离)+*h(自身离终点距离)原理:将地图分成若干个方块(结点),从起点周围的8个结点找到不是位于地图边缘和障碍物的结点,放到开启列表中,再从开启列表中找出f值最小的结点,放入关闭列表中;重复执行该步骤,直到起点等于终点为止。此时,关闭列表存放的就是最短路径,从最后一个结点开始判断自身有无父结点,有的话就存放到新的列表path中。最后反原创 2020-06-09 18:07:00 · 703 阅读 · 3 评论