- 博客(46)
- 资源 (11)
- 收藏
- 关注
原创 skynet中监测服务是否挂掉
写个监测服务,监测所有服务,一旦某个服务dump掉,就立即发个邮件通知一下.main 里第一个先启动 moniter 服务(unique service) skynet.uniqueservice ("moniter")其他服务启动后,向 moniter 注册一下,加入moniter的监测列表中在 moniter 中定时轮询,安全调用(xpcall) 一下每个监测中的服务的心跳方法(CMD.h
2016-07-31 16:06:12 2299
原创 UE4接口的使用及对象回收机制
自己现在在做的demo中,用到了大量的UObject对象,战斗的过程中会频繁的new出这些对象,无疑会消耗很大的cpu,为了减少和现有架构的耦合性,本想用继承的方式写个基类,发现ue中不能同时继承两个UObject。根据answerhub里的提示,就是用接口来做。接口的弊端是里面的成员不能用UPROPERTY宏标记给蓝图识别,不过可以在子类中写个方法来“曲线救国”这个回收机制的相关类
2016-07-31 14:20:49 4541 2
转载 windows和android调用第三方C++库(静态库lib、动态库dll)
官方wikiC++调用静态库StaticLibrary(lib)Linking Static Librarieshttps://wiki.unrealengine.com/Linking_Static_Libraries_Using_The_Build_System C++调用动静态链接库Dynamic Link Library(dll)Linkin
2016-07-31 14:17:35 4905
原创 鼠标左键右键不触发事件的原因
鼠标左键右键不触发事件的原因:Edit -> Project Setting -> Engine -> Input -> Mouse Properties,不勾选“use mouse for touch”
2016-07-31 14:15:33 2139
原创 android打包时如何只生成单个apk而不需要obb
UE4的默认打包方式会生成一个obb,一个apk,用处是为了方便减小apk的大小,因为google play安装包的限制是50m。打开Edit -》 Project Settings -》 Platforms -》 Android,勾选:Package game data inside .apk这样打包以后可以将单个apk拷贝到安卓设备中进行安装。如果要上Google
2016-07-31 14:12:27 3970
转载 Visual Studio的相关插件安装:UE4.natvis和UnrealVS Extension
UE4.natvis官方文档:https://docs.unrealengine.com/latest/INT/Programming/Development/VisualStudioSetup/index.html#debugging 其中debug插件安装方式是:将文件:[UE4Root]/Engine/Extras/VisualStudioDebugging/
2016-07-31 14:10:15 4222
转载 FBX导入时模型贴图半透明的解决办法
FBX导入UE4后,模型可能是这种半透明的状态: 解决办法:1,打开模型的Material 2,修改Blend Mode为Masked 或者 Opaque 3,保存、应用即可。原文出处:http://aigo.iteye.com/blog/2283010
2016-07-31 14:04:09 12315
原创 单位移动时如何启用ROV避让模式
多个聚集在一团的物体同时向同一个点移动时,实现各个物体之间相互避让: Cpp代码MyCharacter->GetCharacterMovement()->bUseRVOAvoidance = true; 启用这个属性生效后,效果是:群体移动时,各个单位都保持一定距离,并且到达终点后第一个到达的单位之外的所有Pawn,都会围绕在第一个到达单位的周围,形成一个圆圈。 如果没有
2016-07-31 14:01:48 1227
原创 ue4中模式设定
1、以观察者的视角(Spectator)那么在Word Setting中Default Pawn和Spectator两者要设置为同一个类此模式中,摄像机组件是在这个Spectator中create并且控制,还可以绑定Input事件class AMySpectator : public ASpectatorPawn{ GENERATED_BO
2016-07-31 14:00:12 7446
原创 UE4容器TArray、TMap的使用
ue中特有容器的使用1、Log日志宏输出到屏幕上的调试日志会覆盖,在output log窗口则可以全部显示,所以先写个打日志的宏DECLARE_LOG_CATEGORY_EXTERN(MyContaimTest, Log, All);DEFINE_LOG_CATEGORY(MyContaimTest)//调试日志UE_LOG(MyContaimTest, War
2016-07-31 13:56:50 51728 2
原创 ue4数据表的使用
作用:excel表中的数据倒入到ue中,可以在ue中直接编辑数据。 把它做成一个插件,再写个导出二进制数据的方法导出一个二进制文件a.bin,然后在游戏运行时读取a.bin文件,这样数据就相对安全点了1、excel中到处csv,再导入ue中(貌似可以直接认识的只有csv了)另存为csv文件
2016-07-31 13:55:39 12085
原创 UE4手动创建c++类
一般来说都是在Editor中 add new c++,这样加完后会自动加入到vs工程中并编译自动生成 XXX.generated.h 头文件。 也可以手动创建c++的XXX.h 和XXX.cpp,然后使用UBT直接加入vs工程中,然后编译生成XXX.generated.h 头文件。 (ps:#inclued “XXX.generated.h”编译前是不存在的,但是也要加入到XXX.h中)
2016-07-30 23:08:26 7514
原创 点击屏幕,获取3d世界里的物体
//触屏回调void AMyPlayerCtrler::OnTapPressed(const FVector2D& ScreenPosition, float DownTime){ FVector WorldPosition(0.f); //存储点击中3d实体的世界坐标 AActor* const HitActor = GetClickTarget(ScreenPosition, Wo
2016-07-30 23:02:03 1606
原创 某个对象初始化时构造一个蓝图对象
这种情况必须要在构造函数中找到该蓝图对象资源,不能再Editor中指定,不然Editor还没有打开就编译奔溃 //用摄像机蓝图类 static ConstructorHelpers::FClassFinder CameraCompCls(TEXT("/Game/TopDownCPP/Blueprints/Player/MyCameraCompBp")); mCam
2016-07-30 23:00:34 656
原创 Config配置的使用
这个没有多大卵用,在外部配置文件中配置一些对象成员的初始值,必须重新编译才能读取到,还不如在蓝图中初始化这些值1、首先必须在类上使用宏声明,其次成员也要用宏声明UCLASS(config = Game)class UMyCameraComp : public UCameraComponent{ GENERATED_BODY()public: UPROPE
2016-07-30 22:57:47 1272
原创 ue4-日志使用
项目名:MySlate在当前模块的预编译头文件则为MySlate.h中,声明DECLARE_LOG_CATEGORY_EXTERN (LogMySlate, Log, All );对应实现文件MySlate.cpp定义DEFINE_LOG_CATEGORY (LogMySlate)这样在项目中的任何地方都可以使用这个日志,因为每个实现文件里都会包
2016-07-30 22:56:03 4667
原创 ue4 选人工具
圆形Sphere形状选人,以当前某一Actor为中心,以半径为x的范围内选取符合条件的东东(ue中还有一Box形状选人,和Sphere选人差不多)1、蓝图2、c++void UGolbalFunc ::TestFilter( AMyChar* _actor , float _radius){ TArra
2016-07-30 22:51:55 2225
原创 ue4-定时器(废弃)
定个成员变量,hold住这个定时器 FTimerHandle mTimer;使用lambda表达式的delegate auto rotaInterp = [&]() -> void{
2016-07-30 22:48:57 3660
原创 粒子延时显示
延迟逻辑 UParticleSystem* ps = UResMgr:: GetInstance()->GetParticle (_ele-> mResId); UParticleSystemComponent* psComp = nullptr; psComp = ps != nullptr ? UGameplayStatics::SpawnE
2016-07-30 22:36:21 813
原创 玩家控制器PlayerController、摄像机UCameraComponent
Edit1、c++中绑定Input事件自定义控制器AMyPlayerCtrlerclass AMyPlayerCtrler : public APlayerController重写几个方法 // Begin PlayerController interface virtual void PlayerTick(float
2016-07-30 22:33:43 2865
原创 ue4 内存管理 – 实践
UObject、UActorComponent的gc机制UObject gc机制1)TArray保持引用如果有个TArray容器,则这个TArray需要用一个UPROPERTY()去保持容器的引用,然后里面的UObject就不需要再去AddToRoot去阻止被gc了。 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "UCoolD
2016-07-30 22:30:44 11207 1
原创 ue4 内存管理 – 实践(废弃)
UObject、UActorComponent的gc机制。UObject gc机制1)TArray保持引用如果有个TArray容器,则这个TArray需要用一个UPROPERTY()去保持容器的引用,然后里面的UObject就不需要再去AddToRoot去阻止被gc了。 C++12
2016-07-30 22:22:52 3067
原创 Sublime Text3 快捷键汇总
Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑) Ctrl+G 跳转到相应的行 Ctrl+J 合并行(已选择需要合并的多行时) Ctrl+P 查找当前项目中的文件和快速搜索;输入 @ 查找文件主标题/函数;或者输入 : 跳转到文件某行; Ctrl+R 快速列出/跳转到某个函数 Ctrl+K Backspace 从光标处删除至行首 Ctr
2016-07-30 22:16:40 566
原创 sublime text同步文件神器-SFTP
SFTP神器,可以用SSH通道同步远程服务器的文件,一般服务器应用开发的流程是在本地编辑器写好代码,上传到服务器,编译调试,然后继续这样的循环。我先前一直是scp过去的,比较麻烦,SFTP则可以让你直接在sublime text中就上传文件到服务器。安装好后,在要同步的文件那里右键”SFTP/FTP->Map To Remote…”,配置好服务器地址账户密码还有要映射过去的文件夹位置,就可
2016-07-30 22:07:02 15485 1
原创 LRU算法
最近为游戏里纹理占用的内存做个控制,让它限定在某个值内,用的是cocos(2.x很老的版本)的引擎,虽然里面的纹理缓存池( CCTextureCache ) 有个接口 removeUnusedTexture 可以释放不使用的纹理 ( 引用计数==1 ),但是如果频繁需要打开的ui的纹理也会被释放掉。这不够理想,所以需要一套类似lru的算法来管理纹理对象,释放最不常用的纹理,达到内存即可限定在某个值
2016-07-30 21:49:46 1695 1
转载 一致性哈希算法(consistent hashing)
转载出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。
2016-07-30 21:34:14 382
原创 CentOS7 MongoDB 3.2.6环境配置
安装openssl #yum install -y openssl-devel openssl 下载MongoDB #官网:https://www.mongodb.com/ #选择try MongoDB for free #选择Linux RHEL 7 Linux 64-bit #在https://docs.mongodb.org/manual/tutorial/i
2016-07-30 21:08:07 629
原创 文件编码问题导致 ./configure : /bin/sh^M : bad interpreter
[root@localhost lpng142]# ./configurebash: ./configure: /bin/sh^M: bad interpreter: No such file or directory[root@localhost lpng142]# To fix, open your script with vi or vim and enter
2016-07-29 15:07:40 597
原创 CentOS 7安装 openssl
官网:https://www.openssl.org/;下载页面:https://www.openssl.org/source/;最新版本:https://www.openssl.org/source/openssl-1.0.1t.tar.gz ;(2016年5月7日)下面开始安装操作,具体包括:解压;配置;编译;安装;一、解压tar -xzvf ./openssl-1
2016-07-29 15:05:19 16325 4
原创 gcc/g++ -O 优化选项说明
查查gcc手册就知道了,每个编译选项都控制着不同的优化选项 下面从网络上copy过来的,真要用到这些还是推荐查阅手册 -O设置一共有五种:-O0、-O1、-O2、-O3和-Os。 除了-O0以外,每一个-O设置都会多启用几个选项,请查阅gcc手册的优化选项章节,以便了解每个-O等级启用了哪些选项及它们有何作用。 让我们来逐一考察各个优化等级: -O0:这个等级(字母“O
2016-07-29 14:59:07 1576
原创 centos7安装redis3.2
基于skynet的mmo示例,里面使用redis内存数据库,所以又屁颠屁颠去装了redis一 下载redis最新版 http://www.redis.cn 二 解压 # tar xvzf redis-3.2.tar.gz 三 # cd redis-3.2.0 四 # make问题:异常一: make[2]: cc: Command n
2016-07-29 14:55:24 1701
原创 游戏服务器心跳包的作用
心跳包的意义在哪里?作用首先查一下tcp的断线是否真的可靠看到了一位同学的经验点击跳转到原文 之前的测试都是,手动强制关闭客户端进程,然后查看服务器的情况,结果往往是,服务器收到了客户端关闭的事件。其实,我一直忽略了一个问题,我没有拔掉网线来测试! 上面的手动关闭客户端进程,事实上并不能测试出想要
2016-07-29 14:31:41 2322 1
转载 协程实现中的 ucontext簇函数学习
之前看云风写的c coroutine源码时,里面涉及的到的几个系统函数,就搜到这位fergus 童鞋的文章,链接忘了保存下来 作者: fergus ([email protected])getcontext, setcontext —— 获取或者设置用户上下文概要#include ucontext.h>int getcontext(ucontext_t
2016-07-29 14:19:13 1060
转载 谈谈并发编程中的协程
云风开源的c 协程库 coroutine ,代码不多,强烈建议一读此原文的出处忘了,知道的童鞋duang一声 高并发编程里多线程(进程)的弊端 其实从著名的 C10K 问题的时候, 就谈到了高并发编程时, 采用多线程(或进程)是一种不可取的解决方案, 核心原因是因为线程(或进程)本质上都是操作系统的资源, 每个线程需要额外占用1M或者2M的内存空间, 所以2G内存
2016-07-29 14:12:44 653
原创 skynet的运用-mmo类型
这是云风的一个开源项目skynet的一个mmo运用示例,也被云风列到wiki中的use列表中,对于了解服务器框架的开发非常有用(至少对我而言),wiki请看点我git: https://github.com/jintiao/some-mmorpg1、下载编译openssl 下载地址:https://www.openssl.org/source/openssl
2016-07-29 14:03:22 3858 3
原创 Windows是上开发,Linux中运行
gitlab中创建个工程 MySkynetTest win 中 clone 出来,把 Skynet 的作为一个 submodule 添加到项目中 推送到远端 master Linux 中把这个项目 clone 出来,先上传ssh私匙,直接把win中的 id_rsa(C:\Users\yangxuan.ssh目录下),丢到 Linux 中的 /root/.ssh 目录下(现在是r
2016-07-29 13:57:18 914
原创 linux安装skynet总结
这是云风的一个开源项目,wiki请看点我clone 项目 git clone https://github.com/cloudwu/skynet.git 安装开发工具集合 “Development Tools”, 因为需要用到autoconf 看看都有什么 # yum group list安装 # yum group install
2016-07-29 13:55:03 2900
转载 Make 命令教程
Make 命令教程代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。本文介绍Make命令的用法,从简单的讲起,不需要任何基础,只要会使用命令行,就能看懂。我的
2016-07-29 13:39:20 420
原创 Makefile 中:= ?= += =的区别
Makefile 中:= ?= += =的区别在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE
2016-07-29 13:36:22 350
原创 详细分析Linux动态库的使用方式
动态链接库的使用使用动态链接库,首先需要在编译期间让编译器检查一些语法与定义。这与静态库的实用基本一样,用的是 -Lpath 和 -lxxx 标签。如:gcc file1.o file2.o -Lpath -lxxx -o program.exe编译器会先在path文件夹下搜索libxxx.so文件,如果没有找到,继续搜索libxxx.a(静态库)。在程序运行期间,
2016-07-29 13:34:08 572
Unity 5.x Shaders and Effects Cookbook(2nd).pdf
2016-10-20
Cocos2d-x与Android交互(c++与java互调),与IOS交互(c++与objective c混编)
2014-05-03
开源测试项目:spring mvc+springsecurity3+ehcache+bootstrap+mysql
2013-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人