01 2018 档案
摘要:Actor 生命周期 本页面的内容: 生命周期详解 从磁盘加载 Play in Editor 生成 延迟生成 生命走向终点 在游戏进程中 垃圾回收 高级垃圾回收 本页面的内容: 生命周期详解 从磁盘加载 Play in Editor 生成 延迟生成 生命走向终点 在游戏进程中 垃圾回收 高级垃圾回收
阅读全文
摘要:一、Android打包 1. 从这里下载最新版本的 ADT Bundle 2. 由于Cocos2d-x 还不支持最新的 NDK r10,所以我们需要从网络上搜索 NDK r9d 用于编译 3. 在完成 SDK和 NDK 的下载安装后,我们需要做一些环境配置工作: Mac下修改 .profile 文件
阅读全文
摘要:1,给角色添加组件: UCameraComponent* Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera0")); 2,字符串组合(蓝图中组合字符串): BuildString, string +int/float/Obj
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 目录(?)[+] ue中特有容器的使用 1、Log日志宏 输出到屏幕上的调试日志会覆盖,在output log窗口则可以全部显示,所以先写个打日志的宏 DECLARE_LOG
阅读全文
摘要:ue4射线查询主要使用LineTraceSingleByChannel和LineTraceSingleByObjectType函数进行 LineTraceSingleByChannel是通过Channel进行查询 LineTraceSingleByObjectType通过ObjectType进行查询
阅读全文
摘要:Ray-Trace作用于射线拾取。 射线拾取主要相关 1.拾取函数是UWorld的多个方法。比如LineTraceSingle是单一拾取,拾取到一个之后就不继续穿透了,而LineTraceMulti会拾取多个目标。 2.射线拾取的主要参数有拾取开始点,结束点,拾取结果(一个FHitResult类型的
阅读全文
摘要:前言 UE同步是一块比较复杂而庞大的模块,里面设计到了很多设计思想,技巧,技术。我这里主要是从同步的流程分析,以同步的机制为讲解核心,给大家描述里面是怎么同步的,会大量涉及UE同步模块的底层代码,稍微涉及一点计算机网络底层(Socket相关)相关的知识。 PS:如果只是想知道怎么使用同步,不建议阅读
阅读全文
摘要:准备工作 1、VS2012使用命令行选项查看对象的内存布局 微软的Visual Studio提供给用户显示C++对象在内存中的布局的选项:/d1reportSingleClassLayout。使用方法很简单,直接在[工具(T)]选项下找到“Visual Studio命令提示(C)”后点击即可。切换到
阅读全文
摘要:函数重载(overload)函数重载是指在一个类中声明多个名称相同但参数列表不同的函数,这些的参数可能个数或顺序,类型不同,但是不能靠返回类型来判断。特征是:(1)相同的范围(在同一个作用域中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无(注:函数重载与有无virtua
阅读全文
摘要:我们知道,与C语言相比,C++在布局和存取时间上的额外开销主要是由虚函数(virtual function)机制和虚继承(virtual base class)机制引起的。在前面一篇文章中,我们从内存布局的角度入手,分析了虚继承的实现原理,传送门:从内存布局看C++虚继承的实现原理。 今天,我们来分
阅读全文
摘要:熟悉脚本语言的人都知道,很多脚本语言都引入了“类型自动推断”技术:比如python,可以直接声明变量,在运行时进行类型检查。随着C++11标准的发布,C++语言也引入了类型自动推断的功能,这就是我们今天要介绍的auto关键字。 C++是一种强类型语言,声明变量时必须明确指出其类型。但是,在实践中,优
阅读全文
摘要:C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介
阅读全文
摘要:今天我们来讲讲C++的allocator类。 C++提供了new和delete操作符来管理动态内存空间。new操作通常需要完成两部分工作:一是在系统中申请内存空间,二是在分配的内存上构造对象。delete操作也通常需要完成对应的两部分工作:一个调用相应的析构函数销毁对象,二是回收内存。从这点看,ne
阅读全文
摘要:如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr。在学习weak_ptr之前最好对shared_ptr有所了解。如果你还不知道shared_ptr是何物,可以看看我的另一篇文章【C++11新特性】 C++11智能指针之shared_ptr。 1、为什么需要weak_p
阅读全文
摘要:在前面一篇文章中,我们了解了C++11中引入的智能指针之一shared_ptr,今天,我们来介绍一下另一种智能指针unique_ptr。 unique_ptr介绍 unique是独特的、唯一的意思,故名思议,unique_ptr可以“独占”地拥有它所指向的对象,它提供一种严格意义上的所有权。这一点和
阅读全文
摘要:C++中的智能指针首先出现在“准”标准库boost中。随着使用的人越来越多,为了让开发人员更方便、更安全的使用动态内存,C++11也引入了智能指针来管理动态对象。在新标准中,主要提供了shared_ptr、unique_ptr、weak_ptr三种不同类型的智能指针。接下来的几篇文章,我们就来总结一
阅读全文
摘要:熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作。如果暂时不明确该指针指向哪个变量,则需要赋予NULL值。除了NULL之外,C++11新标准中又引入了nullptr来声明一个“空指针”,这样,我们就有下面三种方法来获
阅读全文
摘要:本文主要翻译自 http://www.codeproject.com/Articles/541067/Cplusplus-Smart-Pointers 1. 传统指针存在的问题 传统指针存在诸多的问题,比如指针所指向的对象的生命周期问题,挂起引用(dangling references),以及内存泄
阅读全文