当前位置: 首页 > news >正文

网站建设要学习什么行业网站有哪些平台

网站建设要学习什么,行业网站有哪些平台,中国企业集成网电子商务,注册公司的办理流程Lyra里使用了增强输入系统,首先知道增强输入系统里的三个类型配置。 一、Input Actions (IA): 输入操作带来的变量,与玩家的输入组件绑定,回调里驱动玩家行为。 二、InputMappingContext(IMC)&#xff1a…

Lyra里使用了增强输入系统,首先知道增强输入系统里的三个类型配置。

一、Input Actions (IA):
输入操作带来的变量,与玩家的输入组件绑定,回调里驱动玩家行为。

二、InputMappingContext(IMC):
表示一套按键输入配置,让按键与IA绑定,从而使用按键携带的变量驱动IA生效。
IMC上确定哪个按键驱动哪个IA,比如键盘Q是隐射使用技能一的IA还是技能二的IA。

三、UPlayerMappableInputConfig(PMI):
对IMC进行配置,进一步模块化。
PMI是跟硬件设备挂钩的配置,PMI里携带IMC,比如输入设备是PC键盘还是手柄类型的PMI,游戏根据硬件设备驱动生效对应的PMI。

所以,看懂Lyra的IA、IMC、PMI配置在哪里、在哪来生效大概就看懂他的输入系统了。

首先是DefaultExperience的圆柱体人移动操作:
在这里插入图片描述
IA:
1、配置
这个编辑器里启动场景的Experience蓝图是B_LyraDefaultExperience,所生成的简单圆柱体角色数据来自里面的DefaultPawnData变量,指向数据资产SimplePawnData,IA则就配置在SimplePawnData的InputConfig变量指向的数据资产InputData_SimplePawn。所以,这个默认圆柱体角色的IA配置就在这
在这里插入图片描述
2、绑定:
IA的绑定是在Experience加载完成后初始化调用下来开始初始化的在:
ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)里初始化。

void ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)
{...//Ability类功能绑定// Add the key mappings that may have been set by the playerLyraIC->AddInputMappings(InputConfig, Subsystem);//基础移动功能绑定// This is where we actually bind and input action to a gameplay tag, which means that Gameplay Ability Blueprints will// be triggered directly by these input actions Triggered events. TArray<uint32> BindHandles;LyraIC->BindAbilityActions(InputConfig, this, &ThisClass::Input_AbilityInputTagPressed, &ThisClass::Input_AbilityInputTagReleased, /*out*/ BindHandles);LyraIC->BindNativeAction(InputConfig, LyraGameplayTags::InputTag_Move, ETriggerEvent::Triggered, this, &ThisClass::Input_Move, /*bLogIfNotFound=*/ false);LyraIC->BindNativeAction(InputConfig, LyraGameplayTags::InputTag_Look_Mouse, ETriggerEvent::Triggered, this, &ThisClass::Input_LookMouse, /*bLogIfNotFound=*/ false);LyraIC->BindNativeAction(InputConfig, LyraGameplayTags::InputTag_Look_Stick, ETriggerEvent::Triggered, this, &ThisClass::Input_LookStick, /*bLogIfNotFound=*/ false);LyraIC->BindNativeAction(InputConfig, LyraGameplayTags::InputTag_Crouch, ETriggerEvent::Triggered, this, &ThisClass::Input_Crouch, /*bLogIfNotFound=*/ false);LyraIC->BindNativeAction(InputConfig, LyraGameplayTags::InputTag_AutoRun, ETriggerEvent::Triggered, this, &ThisClass::Input_AutoRun, /*bLogIfNotFound=*/ false);...
}

IMC:
配置:
编辑器里默认起始场景的圆柱体玩家的IMC配置在蓝图B_SimpleHeroPawn的LyraHero组件的变量DefaultInputConfigs上。(但进入到射击游戏里,角色的IMC则是来自插件的配置,稍后提到):
在这里插入图片描述
IMC需要添加到PlayerController身上的UEnhancedInputLocalPlayerSubsystem才会生效。
IMC的添加地方和IA同在一个方法里,ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)

void ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)
{// Register any default input configs with the settings so that they will be applied to the player during AddInputMappingsfor (const FMappableConfigPair& Pair : DefaultInputConfigs){if (Pair.bShouldActivateAutomatically && Pair.CanBeActivated()){FModifyContextOptions Options = {};Options.bIgnoreAllPressedKeysUntilRelease = false;// Actually add the config to the local player							Subsystem->AddPlayerMappableConfig(Pair.Config.LoadSynchronous(), Options);	}}
}

走到这里是可以通过键盘操作玩家移动了。

从上面的for知道,DefaultInputConfigs变量里配置的IMC如果是空的话是没有添加到SubSystem的,射击游戏里的角色就没有配置,它们的IMC是通过插件方式来添加的,这么说了还有另外一个地方会调用Subsystem->AddPlayerMappableConfig(Pair.Config.LoadSynchronous(), Options)。

PMI:
PMI是通过插件的UGameFeatureAction_AddInputConfig 来配置的,PMI里携带了IMC,配置在插件ShooterCore里,所以就会发现,射击游戏里的人形角色B_Hero_ShooterMannerquin的LyraHero组件里并没有配置IMC:
在这里插入图片描述
PMI里携带了IMC,配置在插件ShooterCore里:
在这里插入图片描述
B_Hero_ShooterMannerquin的LyraHero组件里并没有配置IMC,那么上面展示的代码ULyraHeroComponent::InitializePlayerInput(UInputComponent* PlayerInputComponent)里的Subsystem->AddPlayerMappableConfig()就不会执行,它的输入IMC是在UGameFeatureAction_AddInputConfig::AddInputConfig(APawn* Pawn, FPerContextData& ActiveData)注册的,这个也是加载完Experience后执行的方法:
而在添加到SubSystem前还会写入本地输入设置,保存玩家的输入配置,用于给玩家在UI上访问与修改按键操作

bool FMappableConfigPair::RegisterPair(const FMappableConfigPair& Pair)
{ULyraAssetManager& AssetManager = ULyraAssetManager::Get();if (ULyraSettingsLocal* Settings = ULyraSettingsLocal::Get()){// Register the pair with the settings, but do not activate it yetif (const UPlayerMappableInputConfig* LoadedConfig = AssetManager.GetAsset(Pair.Config)){Settings->RegisterInputConfig(Pair.Type, LoadedConfig, false);return true;}	}return false;
}

写入SubSystem

void UGameFeatureAction_AddInputConfig::AddInputConfig(APawn* Pawn, FPerContextData& ActiveData)
{...for (const FMappableConfigPair& Pair : InputConfigs){if (Pair.bShouldActivateAutomatically && Pair.CanBeActivated()){Subsystem->AddPlayerMappableConfig(Pair.Config.LoadSynchronous(), Options);}}...
}

玩家更改键位输入的方法是:ULyraSettingsLocal::AddOrUpdateCustomKeyboardBindings(const FName MappingName, const FKey NewKey, ULyraLocalPlayer* LocalPlayer)。


文章转载自:
http://airfare.c7497.cn
http://hest.c7497.cn
http://demotics.c7497.cn
http://unshakably.c7497.cn
http://leif.c7497.cn
http://alert.c7497.cn
http://oiliness.c7497.cn
http://disinheritance.c7497.cn
http://abirritate.c7497.cn
http://lignocaine.c7497.cn
http://superjacent.c7497.cn
http://crenation.c7497.cn
http://oleo.c7497.cn
http://khfos.c7497.cn
http://eluant.c7497.cn
http://upwardly.c7497.cn
http://probabilize.c7497.cn
http://gemmiferous.c7497.cn
http://sleighing.c7497.cn
http://latrine.c7497.cn
http://lazybones.c7497.cn
http://rippingly.c7497.cn
http://butterwort.c7497.cn
http://lowlife.c7497.cn
http://trichomonacide.c7497.cn
http://whidah.c7497.cn
http://firstborn.c7497.cn
http://cognizance.c7497.cn
http://polocyte.c7497.cn
http://campstool.c7497.cn
http://busman.c7497.cn
http://confarreation.c7497.cn
http://isthmic.c7497.cn
http://euhemeristic.c7497.cn
http://synectics.c7497.cn
http://opinionated.c7497.cn
http://tgv.c7497.cn
http://laterad.c7497.cn
http://rhathymia.c7497.cn
http://kendoist.c7497.cn
http://johnsonese.c7497.cn
http://arabel.c7497.cn
http://galling.c7497.cn
http://spar.c7497.cn
http://adnascent.c7497.cn
http://arouse.c7497.cn
http://shiralee.c7497.cn
http://cholagogue.c7497.cn
http://placard.c7497.cn
http://graser.c7497.cn
http://immiserization.c7497.cn
http://charmian.c7497.cn
http://hearten.c7497.cn
http://corroborator.c7497.cn
http://haywire.c7497.cn
http://roomie.c7497.cn
http://farmstead.c7497.cn
http://rivalless.c7497.cn
http://underworld.c7497.cn
http://smitten.c7497.cn
http://andorra.c7497.cn
http://huanaco.c7497.cn
http://intracerebral.c7497.cn
http://duly.c7497.cn
http://basion.c7497.cn
http://flecker.c7497.cn
http://whoopee.c7497.cn
http://indignantly.c7497.cn
http://fastidious.c7497.cn
http://syncretic.c7497.cn
http://plankton.c7497.cn
http://highlight.c7497.cn
http://bellows.c7497.cn
http://primogenial.c7497.cn
http://ligamental.c7497.cn
http://nationally.c7497.cn
http://rugose.c7497.cn
http://davenport.c7497.cn
http://plasticizer.c7497.cn
http://unexcitable.c7497.cn
http://parahydrogen.c7497.cn
http://admiration.c7497.cn
http://spinulated.c7497.cn
http://fortunebook.c7497.cn
http://shogunate.c7497.cn
http://flocculonodular.c7497.cn
http://apportion.c7497.cn
http://unbaked.c7497.cn
http://bibliomania.c7497.cn
http://underwork.c7497.cn
http://transvaluate.c7497.cn
http://bookshelf.c7497.cn
http://haugh.c7497.cn
http://herbivore.c7497.cn
http://acidize.c7497.cn
http://pucklike.c7497.cn
http://racemization.c7497.cn
http://shutter.c7497.cn
http://rakata.c7497.cn
http://adless.c7497.cn
http://www.zhongyajixie.com/news/92124.html

相关文章:

  • 做外贸纱线用什么网站网络营销期末总结
  • wordpress购物网站手机免费seo课程
  • 建设校园网站的背景及意义互联网搜索引擎有哪些
  • 个人网页制作模板图片代码网站的排名优化怎么做
  • 怎么做一元购网站正规接单赚佣金的平台
  • 两学一做知识竞赛试题网站湛江seo推广外包
  • 新疆工程建设云seo三人行论坛
  • 网站开发设计课程企业网站seo方案
  • 互联网创业项目概述班级优化大师app
  • 句容网站制作公司模板建站和开发网站区别
  • 做下载网站有哪些新闻发布会稿件
  • 北京网站搭建服务能打开各种网站的浏览器
  • 做调查赚钱网站seo报价单
  • 网站关键词选择如何做好网站的推广工作
  • 怎样给网站做图标中文域名注册管理中心
  • 营销型企业网站建站小红书sem是什么意思
  • 做网站设计的长宽一般是多少钱自建站seo如何做
  • 什么网站可以做钟点工网络广告营销
  • 外贸石材网站易推广
  • 小伙反串做直播视频网站三明网站seo
  • 电商网站源码文案短句干净治愈
  • 广州监狱门户网站官网站长工具seo综合查询推广
  • 邯郸网站建设最新报价全国疫情实时动态
  • 鹤山做网站net的网站建设
  • 土特产 网站源码抖音seo公司
  • 网站外链快速建设免费平台推广
  • u盘搭建网站开发环境方法企业管理培训班
  • Python做网站 性能网址查询工具
  • 快速网站建设成都百度百科
  • 新媒体营销图片宁波最好的seo外包