自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 资源 (13)
  • 收藏
  • 关注

原创 goim授权流程

本文简单描述一下goim的auth流程auth成功以后,便可以接收推送过来的聊天消息auth流程如下:client ⇒ comet ⇒ logic ⇒ comet ⇒ client其中client发往comet的结构为message Proto { int32 ver = 1 [(gogoproto.jsontag) = "ver"]; int32 op = 2 [(gogoproto.jsontag) = "op"]; int32 seq = 3 [(go

2020-11-10 15:53:36 50

原创 ExecutionException: io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Bandwidth exhausted

17:02:39.745 [grpc-default-worker-ELG-1-2] WARN io.grpc.netty.NettyClientHandler - Received GOAWAY with ENHANCE_YOUR_CALM. Debug data: {1}17:02:39.745 [grpc-default-worker-ELG-1-2] WARN io.grpc.internal.AtomicBackoff - Increased keepalive time nanos to ..

2020-11-09 17:07:46 62

原创 fastjson使用问题

public class PlayerVo implements Serializable { private static final long serialVersionUID = -5248543655901813565L; private HeroListVo heroListVo; public HeroListVo getHeroListVo() { if (heroListVo == null) { heroListVo .

2020-10-21 14:23:11 13

原创 kafka demo

demo目录结构如下上面的是生产者,下面是消费者运行之前需要先安装kafka本人测试用,故装了个虚拟机,虚拟机地址为192.168.40.105,kafka监听端口9092一下是kafka的版本以及在虚拟机的位置这时候可以启动kafka了,启动命令分两步,bin/zookeeper-server-start.sh config/zookeeper.propertiesbin/kafka-server-start.sh config/server.properties

2020-09-30 11:57:22 45

原创 kafka timeout

注意,当kafka没有安装在本机时,记得修改server.properties文件中的listeners属性今天就被这个坑了,客户端发消息始终不成功,总是提示发到了localhost,改成本地地址就好了

2020-09-30 11:39:09 4

原创 goim 纯windows环境搭建

今天在win10的环境下搭建了一下goim,在此记录一下。goim的具体介绍可直接访问github:https://github.com/Terry-Mao/goim1.kafka参考:https://blog.csdn.net/github_38482082/article/details/82112641参考此链接正常启动kafka即可2.discovery参考:https://github.com/bilibili/discovery参考以上连接启动discovery即可,

2020-07-21 15:04:37 211 2

原创 java list 查找元素

从list中查找符合条件的元素是一个很常见的需求,有很多办法可以做到,详见参考链接。本文讨论的点是如何把这个过程封装成一个方法,这样做的好处如下:1.简化调用2.容易替换成不同的实现3.可以做一些统一的处理这就是抽象的好处吧假设List中保存的元素是Item,定义如下:public class Item { private Integer id; private Integer weight; public Item(Integer id, Integer weight)

2020-06-22 11:21:03 522

原创 java random by weight

使用反射实现了一个通用的random by weight,只要被随机的结构中带有getWeight函数即可public static <T extends Object>T getRandomObjByWeight(List<T> objs, Class<?> clazz) { try { Method getWeightFunc = clazz.getMethod("getWeight"); Double totalWeight = 0.0; f

2020-06-19 18:03:31 85

原创 golang gin第一个例子

gin框架的github地址https://github.com/gin-gonic/gin按照github上的文档,执行go get -u github.com/gin-gonic/gin不能成功。还好有镜像可用,执行以下命令go env -w GO111MODULE=ongo env -w GOPROXY=https://mirrors.aliyun.com/go...

2020-04-08 19:10:06 167

翻译 实时渲染第四版前言

前言 “在过去八年里东西没有改变太多”,是过去我们进入第四版的想法。“出一个新版本能有多难?”一年半以后,并且还有另外三个专家的加入,我们的任务完成了。我们或许还得花费一年编辑和细化,到那时会很轻易的有超过一百篇的文章和演讲稿再加入进来。就像数据指出的,我们用Google Doc做的参考文献超过170页的长度,每页大约有20个参考资料和相关的注释。我们列出的有些参考在一些其他书中会占用慢...

2019-12-13 17:47:42 273

原创 curl命令

1.curl发送带参数的get请求curl"http://127.0.0.1:3000/field?page=0&pageSize=10"2.curl发送带token的get请求curl -H "Authorization: Bearer tokenString" "http://127.0.0.1:3000/field?page=0&pageSize=10"3...

2019-12-09 19:59:42 107

原创 ue4 IK心得

ik一般涉及到位置和旋转比如双手握枪的实现枪是由手柄驱动的,因此可以在游戏中得到枪的位置及朝向,有了枪的位置及朝向,通过枪上的socket就可以算出左右手所在的位置及其朝向。在ue4中,twoboneik通常只管ik的位置,但如果只管位置,手就不能很好的握在枪上。因此,枪上的socket应该不止决定手的位置,还要决定手的朝向。具体来说,左右手分别叫hand_l和hand_r,这样分两步来实...

2019-10-18 18:54:27 758

原创 ue4随笔

1.好用的ue4命令log logonlineall 打开所有log类型为logonline的log的输出log logtexture off 关闭log类型为logtexture的log输出ToggleDebugCamera 可以让相机和玩家脱离Slomo0.001 可实现慢放,比如子弹事件效果2.ue4调试常用变量(1).UActorComponnet的常用调试变量...

2019-10-18 18:36:55 120

原创 ue4 DerivedDataCache报错

启动ue4时报错,报错堆栈如下:从堆栈可以看出是DerivedDataCache报错,从堆栈的CachedDataProbablyExists函数更可以看出是在判断cache是否存在,故而想到删除项目目录下DerivedDataCache中的Boot.ddc文件,果然问题解决了...

2019-09-23 15:29:35 211

原创 ue4 Actor属性同步流程

Actor属性同步明确几个概念ActorChannel(用来实现Actor同步的通道)其中有保存对应的Actor和Actor中需要同步的Component(Component是从UObject派生)先来关注函数为了方便理解,此处可以把Bunch理解为接收到的数据包,有了Bunch,首先需要知道此数据是同步给哪个Object的,ProcessBunch中的如下代码来获...

2019-09-20 19:34:41 598

原创 fatal: did not receive expected object

使用git clone命令复制项目,报错,如下图要了解这个报错先得了解git clone的过程。git clone命令手下会下载整个仓库到本地,目录是./git/objects/pack,里面有个.pack文件(也可能有多个)。这个报错猜测应该是由于下载了这个文件后,检测到此文件有问题,然后导致clone失败。这么猜测的原因是,通过如下操作,可以把.pack下载下来1.mkdir ...

2019-09-20 11:42:37 387 2

原创 ue4 UParticleSystemComponent 详解

UParticleSystemComponent是ue4中用来管理粒子系统的component,用起来也很简单,一般常用的方法有virtual void Activate(bool bReset=false) override;virtual void Deactivate() override;注意这两个接口是虚函数,最早的定义是在UActorComponent中,在UActorCo...

2019-06-29 14:45:54 1364

原创 ue4 BlueprintNativeEvent用法

BlueprintNativeEvent在ue4中是用来修饰UFUNCTION的,和BlueprintImplementableEvent有点类似,BlueprintImplementableEvent用于实现C++调蓝图(声明在C++,实现在蓝图)BlueprintNativeEvent除了实现C++调用蓝图外,同样会调用一个本地方法,本地方法为 声明的函数名+_Implementati...

2019-04-28 12:15:20 941

原创 ue4 Encountered %d object(s) breaking Disregard for GC assumptions

今天遇到一个奇怪的崩溃Bug,具体的崩溃log如下:[2019.04.19-02.36.16:128][618]LogGarbage: Warning:Disregard for GC object Monatge_ON_AnimNotify/Game/_AI/BT/Task/AI_Random/W2_Stand_Relaxed_Unjam_Montage.W2_Stand_Relax...

2019-04-19 15:44:18 968

原创 ue4 AimOffset和Montage

ue4如何实现不同瞄准方向的开火动画呢?不同方向的瞄准可以使用AimOffset实现,可参考官方文档。https://docs.unrealengine.com/en-us/Engine/Animation/AnimHowTo/AimOffset开火动画一般可采用Montage实现,一般会把开火动作做成设置为一个上半身的Montage,这样就可以实现站立射击,边走边射击的效果。但是...

2019-04-11 11:34:03 362

原创 Was only expecting C++ files to have CachedCPPEnvironments!

今天把ue4引擎从4.21.0升级到了4.21的最新版本,发现之前可以正常编译的代码编译不过了,输出错误为:Was only expecting C++ files to have CachedCPPEnvironments!找到报错的代码,如下:if (!IsCPPFile(PrerequisiteItem)){ throw new BuildException("Was on...

2019-02-28 15:59:31 479

原创 git submodule

在管理多个项目同用代码的时候,submodule比较有用假设有三个项目仓库,MyProjectA,MyProjectB,MyPluginMyPlugin由MyProjectA和MyProjectB共用,当然也可以把MyPlugin项目在两个项目中都放一遍,但这样修改MyPlugin后两边就得都改一遍,比较好的做法是使用submodule,用法也很简单,如下:比如在MyProjectA中...

2019-01-03 16:14:42 1006

原创 ue4 Could not find definition for module 'CryptoPP'

今天遇到一个问题,自己写的插件使用引擎源码编译正常,但用编译过的引擎编译插件,提示Could not find definition for module 'CryptoPP',这个插件确实依赖了CryptoPP,这是ue4依赖的一个第三方模块,具体路径是D:\work\UE_4.21\Engine\Source\ThirdParty\CryptoPP,发现相比引擎源码目录,少了CryptoPP....

2018-12-20 11:22:44 1921

原创 ue4 Animation Notify不触发

今天遇到一个奇怪的问题,当AI不在视野内,animation notify不触发当AI进入玩家视野,animation notify触发正常后来发现是SkeletalMeshComponent的VisibilityBasedAnimTickOption属性设置问题。当VisibilityBasedAnimTickOption设置为OnlyTickPoseWhenRendered时,就会...

2018-12-13 19:50:49 653

原创 c#访问c++dll不能调试

vs2017中用C#程序访问c++dll的时候不能调试c++,只需要修改项目设置即可,如下图启用本地代码调试选项默认是没有勾选的,勾选以后应该就可以正常调试c++了如果还是不行,在vs 工具-&gt;选项-&gt;调试-&gt;常规把逐过程执行属性和运算符(仅限托管)前面勾去掉即可 ...

2018-11-30 17:34:37 298

原创 mysqld启动失败

昨天阿里云服务器到期了,今天续费后,发现mysqld启动不了了启动记录如下:根据提示,先输入systemctl status mysqld.service并没有看到十分明显的信息再输入journalctl -xe还是没有发现十分明显的提示这时候想到查看mysql的错误日志根据以上命令,发现错误日志路径为查看这个文件,发现没有任何本次启动的输出...

2018-11-12 16:05:09 727

原创 算法图解 第4章第一节习题解答

最近看算法图解,对个别章节习题尝试作答,如果错误,欢迎指出4.1 请编写前述sum函数的代码def sum(a): if len(a) == 0: return 0 elif len(a) == 1: return a[0] else: return a[0] + sum(a[1:])val = sum([1,2,3,4,5,6,7,8,9,10])print v...

2018-07-31 11:11:12 1636 5

原创 ue4 FUdpSocketReceiver接收不到消息

ue4中udp接收消息端代码如下:bool FShooterUDPReceiver::Start(const int32 ThePort){ //Create Socket FIPv4Endpoint Endpoint(FIPv4Address(0,0,0,0), ThePort); //BUFFER SIZE int32 BufferSize = 2 * 1024 * 1024;...

2018-06-25 15:25:50 942 1

原创 vs文件编码批量转换工具

https://blog.csdn.net/xiaozhi0999/article/details/52469979上文提到了ue4中出现中文乱码问题,可通过修改文件编码格式解决,但当文件很多的时候,一个个修改文件编码比较费事,所以本人用python写了一个批量转换编码工具(gb2312转utf8),其他编码转换,只需要对代码稍作修改即可。python2.7import osde...

2018-06-23 17:59:46 4218

原创 ue4同c#通信时的中文乱码问题

本文讨论C#同ue4进行通信,出现的中文乱码情况,其他语言类似。本文分两种情况讨论,1.C#向ue4发送string在C#发送string时,要先区分发送的字符串中是否包含中文,判断方法很简单,如下: private bool IsPureAnsi(string str) { for (int i = 0; i &lt; str.Length;...

2018-06-23 17:53:03 731 1

原创 ue4源码本地git管理

本文主要记录一下使用gitlab在局域网管理ue4源码的流程大体思路是在局域网创建gitlab仓库来管理ue4的源码,当引擎源码需要更新时,先把本地代码同步到github上最新的,然后在push到局域网的gitlab仓库,其他人通过gitlab来更新源码即可具体操作流程如下,git remote add epichttps://github.com/EpicGames/UnrealE...

2018-06-20 13:49:04 1523

原创 ue4获取所有mac地址

ue4 4.16版本中获取MAC地址的接口为FGenericPlatformMisc::GetMacAddressString此接口在windows平台的实现是调用Win32接口GetAdaptersInfo,然后返回第一个mac地址,但如果需要获取所有mac地址,此接口就不满足了,但很容易根据此接口实现一个获取所有mac地址的接口,具体代码如下:TArray&lt;FString&gt; FWi...

2018-06-19 19:14:30 1331 1

原创 ue4基于ShooterGame实现弩

需求,实现武器弩1.实现可发射projectile的武器,类似shooterweapon_projectile2.弩击中地面(场景上的静态物体)上则箭插在地面上,如果击中可移动的刚体则箭跟着刚体一起运动,如果打到怪身上,则会跟着怪的bone一起变换(也就是说在怪的bone空间相对变换固定不变)第一条容易实现,只要从shooterweapon_projectile派生即可,主要在实现第二条。这里需要...

2018-06-08 14:32:56 463

原创 ue4 PlayerState跨地图传递变量

切换地图时,PlayerController默认是不会被销毁的而PlayerState默认会被销毁如果PlayerState中有变量需要跨地图传递,可以有如下两种实现方法:1.可以在PlayerController中增加相应的变量,然后在PlayerController派生类中的InitPlayerState(重载)方法中,获取该变量,再给PlayerState中对应的变量赋值2....

2018-04-23 18:22:20 2135

原创 float精度问题

看上面截图,float有效数字到达8位时,运算就已经出问题了

2018-04-17 18:00:06 422

原创 ue4 Authority和server的区别

authority是权威的意思,server是服务器的意思在ue4中,有个判断switch has authority,如下图有两个选项,authority和remote此处一定要区分authority和server的区别比如,当actor设置为可复制时,一般来说authority和server都是指的服务器,因为服务器端的actor是权威的但是当actor设置为不可复制,authority指的就...

2018-03-23 12:11:15 1801

原创 ue4 ApplyRadialDamage

ApplyRadialDamage函数用来处理球形范围伤害,此函数大概是选取球形范围内可被伤害的物体,进行伤害处理另外,此函数还处理了遮挡伤害的问题,比如,伤害范围内包含一根柱子,假设人正好在柱子后,如果想让柱子后的人不承受伤害改怎么处理呢,先来看此函数的声明 UFUNCTION(BlueprintCallable, BlueprintAuthorityOnly, Category="Ga

2017-10-26 18:09:24 1674

原创 ue4碰撞检测及射线查询

ue4射线查询主要使用LineTraceSingleByChannel和LineTraceSingleByObjectType函数进行LineTraceSingleByChannel是通过Channel进行查询LineTraceSingleByObjectType通过ObjectType进行查询要理解这两个函数的区别,首先必须理解Channel和ObjectType的区别

2017-10-26 16:38:19 12594

原创 linux LVM扩容

公司git服务器所在的磁盘空间满了(git所在的物理分区是LVM),需要扩容,之前的磁盘是1T的,现在准备换个3T的盘,我们采取的做法是把1T的盘内容都拷贝到3T的盘中,这样需要为新盘未使用的空间创建一个LVM,创建完后如下如:创建之前只有sda1到sda3,sda4是新创建的具体创建步骤参考如下网页:http://song49.blog.51cto.com/4480450/1

2017-10-13 12:17:54 229

原创 git代码审核流程

大体管理流程是,每个开发人员都有自己的仓库,并且开发功能时要在自己的仓库建立分支,功能开发完成,向主仓库的working 发起Pull Request,然后由相关人员审核代码,以下为具体审核流程审核操作需要在origin指向主仓库时进行git fetch && git checkout workinggit pull假设审核的是小明的commit先确认小明仓库的url有没...

2017-04-07 11:31:19 7098

Head First HTML and CSS(英文版)

Head First HTML and CSS HTML和CSS不容错过的入门教材,英文版

2014-09-05

LODOP打印控件

超好用的打印控件LODOP,再也不用为打印功能发愁了

2014-08-21

消灭星星源码

本人使用cocos2dx开发的消灭星星源码,已在android平台测试过

2014-03-28

TestTrack7.5.3注册机

TestTrack 7.5.3 注册机,经本人测试,XP可用

2014-01-20

JavaScript基础教程

JavaScript基础教程 (第8版)

2014-01-14

Head First Servlets&JSP

深入浅出Servlets and JSP 英文第二版,很清晰

2014-01-10

linux系统编程(中英文版合集)

linux system programming(linux系统编程)中英文版合集

2013-06-21

LINUX与UNIX SHELL编程指南

本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。

2013-06-20

VA2017 2212

Visual Assis 2212最新版,完美支持vs2017。需要注意的是,如果机器安装多个版本vs,需要对每个版本Extensions文件夹进行破解。

2018-07-24

vs文件编码批量转换工具

此工具可批量修改文件编码(默认gb2312转utf8,可修改) python版本:2.7 使用说明: dirGb2312ToUtf8('F:\work\MyProject\Source\MyProject') 把以上路径改为自己需要转换的文件夹即可

2018-06-23

3D 数学基础 图形与游戏开发

3D数学入门的好书,其中对矩阵变化几何解释的描述让人产生茅塞顿开的感觉

2009-11-22

3D游戏程序设计入门

对于想对3D程序设计有所了解的,这本书可以节约你不少时间

2009-11-22

RenderMonkey使用教程

本教程详细描述了使用RenderMonkey进行shader开发

2009-09-24

空空如也

空空如也

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

TA关注的人 TA的粉丝

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