| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 日常UE4自写C++静态函数分享 -> 正文阅读 |
|
[游戏开发]日常UE4自写C++静态函数分享 |
? 一、LerpTransformByCurve函数 FTransform& Current??? 当前的变换(按引用),可以被曲线平滑改变 const FTransform& Target??? 插值的终点变换 const UCurveFloat* Curve????透明度曲线,其取值在0到1之间,以便进行Lerp插值 float& CurveTime????曲线的当前时间 const float& DeltaSeconds????场景时间 static bool LerpTransformByCurve(const FTransform& Start,FTransform& Current,const FTransform& Target,const UCurveFloat* Curve,float& CurveTime,const float& DeltaSeconds) ?? ??? ?CurveTime = FMath::Clamp(CurveTime,MinTime,MaxTime); ?? ??? ?//直接赋值,不考虑过渡 ?? ??? ?if(CurveTime >= MaxTime) FTransform Start = 起始值;//假设已经赋值了 ?? ?//用一个bool控制是否进行插值 ????? //ON TICK ????? if (IsFinished) ??????? //如果插值完毕,就停止插值 ?? ??? ?CurveTime = FMath::Clamp(CurveTime,MinTime,MaxTime); ?? ??? ?//直接赋值,不考虑过渡 ?? ??? ?if(CurveTime >= MaxTime) public: ?? ?void StartLerp(UWorld* InWorld,FTransform& Target,FTransform const& A,FTransform const& B,UCurveFloat* Curve,float& CurveTime, ?? ??? ?TimerCallBack = FTimerDelegate::CreateRaw(this, &FLerpTransformByCurve::LerpBody,InWorld,&Target,A,B, ?? ?void StopLerp(const UWorld* InWorld) const ?? ??? ?InWorld->GetTimerManager().ClearAllTimersForObject(this); private: ?? ?void LerpBody(UWorld* InWorld,FTransform* Target,FTransform A,FTransform B,UCurveFloat* Curve,float* CurveTime,float DeltaSeconds) ?? ??? ?//ON TICK ?? ??? ?if( IsFinished ) ?? ??? ??? ?StopLerp(InWorld); ?? ?static bool LerpTransformByCurve(FTransform& Target,const FTransform& A,const FTransform& B,const UCurveFloat* Curve,float& CurveTime,const float& DeltaSeconds) ?? ??? ??? ?CurveTime = FMath::Clamp(CurveTime,MinTime,MaxTime); ?? ??? ??? ?Target = UKismetMathLibrary::TInterpTo(Target,LerpTransform,DeltaSeconds,20.0f); ?? ??? ??? ?if(CurveTime >= MaxTime) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 10:34:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |