53 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# 前言
							 | 
						|||
| 
								 | 
							
								之前一直都没有研究过GAS如何debug,所以大致翻译了相关内容
							 | 
						|||
| 
								 | 
							
								>https://github.com/tranek/GASDocumentation#debugging
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								中文翻译
							 | 
						|||
| 
								 | 
							
								>https://blog.csdn.net/pirate310/article/details/106311256
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# C++ Debug Tip
							 | 
						|||
| 
								 | 
							
								在非DebugGame Editor模式下模式下,Ue4会对函数进行优化,这会对debug产生一定阻碍。解决方法是:
							 | 
						|||
| 
								 | 
							
								1. 在VisualStudio中将解决方案设置(SolutionConfigurations)改成DebugGame Editor,之后再进行调试。
							 | 
						|||
| 
								 | 
							
								2. 对想要进行Debug的函数增加禁用所有优化的宏。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								使用方法如下:
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								PRAGMA_DISABLE_OPTIMIZATION_ACTUAL
							 | 
						|||
| 
								 | 
							
								void MyClass::MyFunction(int32 MyIntParameter)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									// My code
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								PRAGMA_ENABLE_OPTIMIZATION_ACTUAL
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								如果在插件中使用,则需要对插件执行rebuild,以进行重新构建。最后记得在调试完成后将宏删除。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 自带的Debug工具
							 | 
						|||
| 
								 | 
							
								## showdebug abilitysystem
							 | 
						|||
| 
								 | 
							
								**显示方法**:按“`”键输入命令:showdebug abilitysystem。这个界面总共三页内容,分别显示Attributes、Effects、Abilities。通过**AbilitySystem.Debug.NextCategory**命令进行翻页。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								PS.PageUp与PageDown可以切换目标。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## GameplayDebugger
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在进入关卡后,按下“’”键就可以开启这个工具。(就是屏幕上方出现的工具栏)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								这个功能感觉是用来调试非当前操作角色的,选中的角色上会出现一个红色小恶魔图标(如图所示),你可以小键盘的数字键来开启对应的功能。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								可以通过Tab键切换成飞行模式来选中需要调试角色。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# GameEffect增加/减少 委托绑定
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								AbilitySystemComponent->OnActiveGameplayEffectAddedDelegateToSelf.AddUObject(this, &APACharacterBase::OnActiveGameplayEffectAddedCallback);
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								AbilitySystemComponent->OnAnyGameplayEffectRemovedDelegate().AddUObject(this, &APACharacterBase::OnRemoveGameplayEffectCallback);
							 | 
						|||
| 
								 | 
							
								```
							 |