UE4总结十三

1 设置编辑器中游戏播放的分辨率大小

播放-->高级设置

 

2  将射线通道转成射线类型,这个有空再看下

    const ETraceTypeQuery TraceChannel = UEngineTypes::ConvertToTraceType(ECC_GameTraceChannel4);

 

3 摘自:https://blog.csdn.net/qq_35760525/article/details/77429242

 

4 关于ListenServer和DedicatedServer的区别可以看https://www.cnblogs.com/timy/p/9873587.html

 

5 GamePlay框架

 

6

UObject* const CusLink = PathFollowingComp->GetCurrentCusLinkOb();

 

在PossessedBy时保存委托,在Unpossessed的时候也记得释放掉

void CharacterBase::PossessedBy(AController* NewController)
{
	Super::PossessedBy(NewController);

	// Try setting the inventory source, this will fail for AI
	InventorySource = NewController;

	if (InventorySource)
	{
		InventoryUpdateHandle = InventorySource->GetSlottedItemChangedDelegate().AddUObject(this, &ARPGCharacterBase::OnItemSlotChanged);  //保存FDelegateHandle
		InventoryLoadedHandle = InventorySource->GetInventoryLoadedDelegate().AddUObject(this, &ARPGCharacterBase::RefreshSlottedGameplayAbilities);
	}

	// Initialize our abilities
	if (AbilitySystemComponent)
	{
		AbilitySystemComponent->InitAbilityActorInfo(this, this);
		AddStartupGameplayAbilities();
	}
}

void CharacterBase::UnPossessed()
{
	if (InventorySource && InventoryUpdateHandle.IsValid())
	{
		InventorySource->GetSlottedItemChangedDelegate().Remove(InventoryUpdateHandle);//释放FDelegateHandle
		InventoryUpdateHandle.Reset();

		InventorySource->GetInventoryLoadedDelegate().Remove(InventoryLoadedHandle);
		InventoryLoadedHandle.Reset();
	}

	InventorySource = nullptr;
}

 

8

UE4禁用所有运行中的屏幕提示

摘自https://blog.csdn.net/qq_36409711/article/details/88693500

 

9

如果不想用复杂定时器,用简单延时吧

  int NowTime = FPlatformTime::Seconds();

  if (!(FPlatformTime::Seconds() - LastTime) > CoolDownTime) {return;}
        GEngine->AddOnScreenDebugMessage(-1, 20.0F, FColor::Red, TEXT("HelloWorld"));
        LastTime = FPlatformTime::Seconds();

 

10 关闭HotReload

关闭的方式是在Hello.Build.cs里加上一行:Definitions.Add("WITH_HOT_RELOAD_CTORS=0");

 

11

控制台 

stat SceneRendering

会显示draw call,mesh的drawcall,light 的draw call,三角面等信息

控制台

r.ScreenPercentage 50 只会渲染一半解析度,四分之一的三角面

控制台 

stat SceneRendering

控制台 

stat GPU

控制台

stat game

 

 

6  AI在移动的时候有时候会出现抽搐的bug,原因是Nav导航把Runtime Generation从Dynamic改成Dynamic Modifiers Only

 

7  StaticMesh VS Instance

可见,对于同时渲染多mesh的场景中,用instance这种轻量级更加优化

可以使用

给这个组件设置StaticMesh,同时能拿到该变量

通过add instance来添加实例

 

对于大量mesh在场景中的优化:

1 可以将多个mesh转成一个大的mesh

2  大量mesh的碰撞对cpu将会是麻烦的,将HierarchicalInstancedStaticMesh禁用碰撞检测

禁用投射阴影

对于大量mesh在场景中时,根据距离相机的距离不同显示不同lod,在StaticMesh中设置不同LOD属性和距离

在游戏中,选择该选项,可以看到场景中的StaticMesh根据不同距离相机的位置显示不同LOD的变换效果

当然,对于分析性能优化等相关数据可以在这里去选择查看,和输入控制台一样的

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unreal Engine 4(简称 UE4)和 Unreal Engine 5(简称 UE5)是两个不同版本的游戏引擎。它们之间的区别有: 1. 功能:UE5 比 UE4 拥有更多的功能和功能更加强大,例如全局光照和视觉效果(如材料真实感)。 2. 性能:UE5 比 UE4 拥有更高的性能和效率,因此能够提供更好的游戏体验。 3. 易用性:UE5 比 UE4 更易于使用,因为它拥有更加友好的用户界面和更多的内置工具。 4. 发布时间:UE5 比 UE4 更新更晚,因为它是在 UE4 的基础上发展而来的。 ### 回答2: UE4是虚幻引擎4的简称,而UE5是指虚幻引擎5。虚幻引擎是一种由Epic Games开发的游戏引擎,用于创建各种类型的游戏和虚拟现实应用程序。 UE4于2014年发布,成为业界主流的游戏引擎之一。它具有强大的图形渲染功能和可扩展的蓝图系统,使开发者能够快速创建高品质的游戏和应用。UE4还提供了一系列的工具和功能,如物理模拟、动画系统、AI系统、多平台支持等,使得开发过程更加便捷和高效。 而UE5作为UE4的后续版本,在2021年推出,并带来了一些重大的改进和更新。最引人注意的变化是引擎的新渲染系统“Lumen”,它能够实时处理全局光照和反射效果。这使得游戏环境的光影表现更加真实和逼真。 此外,UE5还引入了“Nanite”技术,它可以实时渲染高精度的三角形模型,无需对细节进行压缩或简化,大大提高了游戏画面的细节和质量。 UE5还通过“Quixel Megascans”为开发者提供了大量的高品质资源,包括纹理、材质和模型等,方便开发者快速创建出令人惊艳的游戏场景。 除此之外,UE5还改进了工作流程和编辑器的性能,提高了开发效率。同时,UE5也支持更多平台和设备,包括主机、PC、移动设备以及VR/AR等,使得开发者能够将其应用程序更广泛地推广和使用。 综上所述,UE5相对于UE4来说,在图形渲染、三维模型细节、资源库及工作流程等方面都有了显著的改进和提升,使得游戏开发者能够更加轻松地创造出更加逼真和精美的游戏作品。 ### 回答3: UE4UE5都是由Epic Games开发的游戏引擎,它们之间的主要区别可以总结为以下几点: 首先,UE5引入了一种新的动态全局照明技术,名为Lumen。这种技术能够实时计算出场景中的光照效果,代替了过去需要预计算的静态光照。这不仅让开发者能够更简单地实现逼真的光照效果,还能够极大地提高开发效率。 其次,UE5还引入了一种名为Nanite的虚幻几何技术。这个技术能够实时渲染数十亿个多边形,并且能够在不影响性能的情况下对其进行编辑和变形。这让开发者可以创建出更细致逼真的场景和角色模型。 此外,UE5还加入了新的动画系统,名为Motion Field。它能够在运行时实现更自然、更流畅的角色动画效果,这使得游戏中的角色更具生动感。 在开发工具方面,UE5提供了一个名为Unreal Editor的全新编辑器界面。这个界面更加用户友好,且具有更高的可定制性,让开发者能够更轻松地定制和组织自己的工作流程。 综上所述,UE5相对于UE4来说在图形渲染、光照技术、几何技术、动画系统以及开发工具方面都有显著的改进。这些改进使得开发者能够更轻松地创建出更逼真、更出色的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值