1:瞧,这是UE4 C++

  在Unreal Wiki上有一系列进入UE4 C++的文章,其中有一个专题非常有用。标题也很有意思。我们开始UE4 C++之路吧

  1.那么怎么入手学习UE4 C++呢?

  以前我们都是从PlayerController,pawn,Camera开始虚幻之路的,方法其实是传承下来的Wiki建议大家从PlayerController或是Blueprint扩展开始。

  ①Hello怎么world呢?

  ClientMessage("Hello world!");

  很简答不是吗

  2.搞不清. 和->

  有时候我们能看到代码中有两种指向. 和-> what the hell is this mean?

  ->表示该变量是一个数据指向哪里的指针。FVector* LocationPtr;    指针

  .表示变量时实际的值。例如 Fvector location;    location.X=5;就是直接访问值

   

LocationPtr=&Location;    //Location这个变量的地址设置成指针LocationPtr;

    LocationPtr->X返回的就是5啦

   再用上面学到的知识来将其输出

  ClientMessage(FString::SanitizeFloat(LocationPtr->X));

瞧是不是很简单:)

  总结一下:当你有一个实际的变量就使用.,就像unrealscript和Java等语言中的做法一样。

  当你事用指针的时候,你不确定他是否已经指向了某件东西,你必须得检测一下

  if(!LocationPtr)return;  //那就返回他,因为他没有指向任何东西

  如果向前面设置的那样

  LocationPtr=&location;

  LocationPtr->X;  //这个指针就是这样访问他的变量的

  3.::这是什么鬼玩意?

  这告诉我们一个函数或是变量的域名空间的范围

  UUnrealEdEngine::Init

  这告诉我们这是类UUnrealEdEngine的初始化函数

  Super::Init(InEngineLoop)

  因为上面引擎的Init是虚函数,你必须得访问他的父类函数

  倘若你写了两个类AMyTree和AMyFlower.两个类都有一个获取位置的函数

  FVector GetLocation() const;

  为什么要引入域名空间::这种超级麻烦的东西?因为C++过于底层。你有权利获取Global域名空间,如果在一个类外你仅仅是声明了一个变量或者函数或者结构

  static const FVector MyGlobalVector=FVector(2,4,16);

  FORCEINLINE void MyVeryGlobalFunction();

{

//处理...
  }

  那么这些符合将会进入所有域名空间并且被所有读取认识,这对C++的operators非常有用,例如你定义的+,-,*除等运算符。

  但是对于你定义的那些小类,例如AMyTree和AMyFlower将会引起麻烦,如果你不使用::将会让编译器困惑是哪个GetLocation,所以你使用::来告诉编译器

  FVector AMyFlower::GetLocation()const

  {

    //code...
  }

  FVector AMyTree::GetLocation()const

  {

    //code..

  }

  因此如果你不使用域名空间,你讲不得不再你的代码中每一个函数的命名都将是唯一的,如果你没有好的记忆和管理方法,估计这很难做到。

  最后你只需要知道::就是一个简单的标签,告诉你这个函数或是变量属于哪个类的。

  

  

  

  

时间: 2024-11-03 21:38:02

1:瞧,这是UE4 C++的相关文章

3.瞧,这就是UE4 C++

1.虚幻中的类前缀你会见到U,A,F,以下就是很好的罗列其中的意义 U: UObject继承过来的,例如UTexture A: AActor继承过来的,例如AGameMode F: 其他的类和结构,例如FName, FVector T:模板,例如TArray,TMap,TQueue I: 接口类,ITransaction E:枚举, ESelectionMode B: Boolean, bEnabled 2.区分大小写! 用宏定义来包裹C++代码 UCLASS 来包裹类 USTRUCT 包裹结构

Develop Your 3D Engine

机器学习是一项经验技能,经验越多越好.在项目建立的过程中,实践是掌握机器学习的最佳手段.在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学习机器学习的目的. 预测模型项目模板不能只通过阅读来掌握机器学习的技能,需要进行大量的练习.本文将介绍一个通用的机器学习的项目模板,创建这个模板总共有六个步骤.通过本文将学到: 端到端地预测(分类与回归)模型的项目结构. 如何将前面学到的内容引入到项目中. 如何通过这个项目模板来得到一个高准确度的模板. 夷床痘排怂潮偻琳新部久按判匈倥岗哺

美驻华使馆:因拨款问题 社交媒体将不会定期更新

打定主意既然睡了一个白天那么晚上继续奋斗吧反正王者归来的比赛在明天的下午一点才会举行就算是熬了通宵到那个时候起床也不是什么问题稻花香眼睛里满是决绝她喃喃道我不是帮雪月我只是在帮书生哥哥我不允许你们欺负他 稻花香点头怯生生道我知道林傲说过一枚普通的建帮令在以后的游戏里大概价值一万元左右但是第一枚建帮令的意义却非比寻常价值绝对会在一百万元以上因为第一个建立的行会往往就是最强的行会 操有种亮出来少吓唬人了老子是吓大的当然你以为我那么容易就能对付过去切想得美嗯随你们我都可以冲天炎龙的火光之中七星灯立刻被

2:瞧,这是UE4 C++

紧接着上面学到的指针和域名空间我们继续逛Unreal 4 wiki. 1.怪形 T 在自己很早学习编程的时候看到过匈牙利表示法,记得是微软的开发者Charles提出来的,尽管看起来很美好但是从来没有遵循过. 其实那些前缀T就是这回道理.UE4 有自己的定义类,所以我们的标题不叫C++学习. TArray TSharedRef TWeakPtr TArray 之类,带前缀T表示Template class,前缀能让你轻易地区分变量名. UE4中的T前缀变量应该让你想起两件东西 ①一种游戏类型 ②一

[工作积累] Tricks with UE4 PerInstanceRandom

最近在用UE4的Instancing, 发现限制很多. Unity有instancing的attribute array (uniform/constant buffer),通过InstanceID来访问每个instance的数据,实现每个实例的不同的参数(通常的一种做法). 然而Unreal没有这样的功能,只有一些instancing的vertex buffer. shader: 1 #if USE_INSTANCING && !USE_INSTANCING_EMULATED 2 flo

中国VR人才需求占全球18%排名第二,UE4技术美术人才万金难求

虚拟现实持续火爆,行业市场规模也随之水涨船高,未来医疗.娱乐.房地产.教育.旅游等领域还将继续拓展VR技术的应用.资本的入局和技术的发展已经相对稳定,VR行业必将迎来更为迅猛的发展阶段. VR在中国的快速发展有目共睹,短短两年时间已经形成了较为完善的产业链,令人惊叹.而与产业链的快速发展形成鲜明对比的,却是人才的远远落后.近期,全球最大的职场社交平台领英针对全球VR人才进行了一次全面扫描.数据显示,美国VR人才占全球40%,需求占比48%,而中国人才仅为2%,需求却占全球18%,人才短缺现象十分

ue4 c++ 接口

使用UE4接口比起普通的高级语言,要多做很多工作,是因为要兼容蓝图的使用,有一些小坑需要注意,开始吧. 1.新建接口类 打开UE4编辑器,与往常一样,新建C++类,然后选择Object继承,然后取名字,这里我使用工作中我的接口名,作为例子说明,"ITrackTeam" 然后修改继承的类,而且你没有看错,就是写2个class,一个叫UTrackTeam,一个叫ITrackTeam,类名和头文件名可以不一样的,我这边命名没有遵守虚幻的规则,本来应该命名为"UITrackTeam&

ue4 SNew背后的逻辑

ue4的ui库Slate体系非常庞大,即使是在创建对象这一小事上,也是相当复杂: SLATECORE_API TSharedRef<SWidget> SNullWidget::NullWidget = SNew(SNullWidgetContent).Visibility(EVisibility::Hidden); 所有SWidget体系内的对象,都要用SNew这个宏来创建,它的内容是: #define SNew( WidgetType, ... ) \ MakeTDecl<Widget

Ue4的GitHUB版本版本管理探索

GitHUB是学生党或者业余爱好者不错的选择,如果大家都处在一个局域网一下还是推荐用SVN,毕竟GitHUB的私有仓库要钱,而且网速难以忍受. 首先说一下:Ue4 4.10 默认生成一下文件与文件夹 文件夹 .vs        备用工程文件 config        游戏设置,一些内部属性 content        游戏资源 Intermediate     缓存文件 Source                C++代码文件 文件 Ue4工程文件 Vs工程文件 首先说一下Ue4的版本管