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

上海住房城乡建设部网站天津seo优化

上海住房城乡建设部网站,天津seo优化,蒙特网设计公司,wordpress图片自动alt1.销毁Actor 1.Actor中存在Destory()函数和Destoryed()函数 Destory()函数是成员函数,它会立即标记 Actor 为销毁状态,并且会从场景中移除该 Actor。它会触发生命周期中的销毁过程,调用 Destroy() 后,Actor 立即进入销毁过程。具体…

1.销毁Actor

        1.Actor中存在Destory()函数和Destoryed()函数

        Destory()函数是成员函数,它会立即标记 Actor 为销毁状态,并且会从场景中移除该 Actor。它会触发生命周期中的销毁过程,调用 Destroy() 后,Actor 立即进入销毁过程。具体来说,它会开始执行 BeginDestroy()EndDestroy(),并且会销毁 Actor 本身及其所有组件

        Destroyed()函数是虚函数(或者是事件函数),它在 Actor 被销毁后被自动调用。你可以在 Destroyed() 中执行一些销毁后的清理工作,Destroyed() 是一个回调函数,当 Actor 销毁过程完成时(通常是调用 Destroy() 后)会被自动调用。可以重写Destoryed()函数完成Actor销毁后的一些操作

        2.Actor在什么时候会被完全销毁

        1.调用 Destroy() 时,Unreal Engine 不会立即释放 Actor 的内存,而是:

  • 标记 Actor 为待销毁状态 (bPendingKill = true)。
  • 移除 Actor 及其组件,停止它的 Tick 和物理模拟。
  • 触发 EndPlay() 事件(如果 Actor 还在 BeginPlay() 之后)。
  • 触发 Destroyed() 事件,让子类可以在销毁前执行额外逻辑。
  • Actor 从世界中移除,停止 Tick 和物理模拟

         2.调用Destroyed()

  • 允许 Actor 在销毁前执行自定义逻辑

        3.UE中的GC机制

        当前阶段会释放掉Actor的内存。

2.移动Actor

        1.使用MoveComponent()函数,

void ASpawnActor::SetActorLocation()
{UStaticMeshComponent* RootComp = Cast<UStaticMeshComponent>(GetRootComponent());if (RootComp){// 定义你想要移动的偏移量FVector Offset(0.f, 0.f, -10.f);  // 向Z轴移动10单位// 使用MoveComponent来平滑移动组件RootComp->MoveComponent(Offset, FRotator::ZeroRotator, true);//UE_LOG(LogTemp, Warning, TEXT("move ment component"));}
}

        我当前的RootComponent是UStaticMeshComponent类型的,如果使用SetupAttachment附加到原本的RootComponent也可以实现,MoveCompoennt是USceneComponent类中的成员函数,只要继承自这个类都可以调用MoveCompoennt函数

        2.创建一个UMoveMentComponent的组件

        创建C++类ActorMovementComponent继承自MoveMentComponent,在,Actor中定义指针,在Actor的构造中初始化这个指针

UPROPERTY(VisibleAnywhere, Category = "Move");
UActorMovementComponent* ActorMovementComponent;ActorMovementComponent = CreateDefaultSubobject<UActorMovementComponent>(TEXT("Move"));

ActorMovementComponent类中实现(TickComponent是虚函数,重写一份,记得)

void UActorMovementComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{//一定记得要写这行Super::TickComponent(DeltaTime, TickType, ThisTickFunction);// 速度和加速度可以从Actor 中设置,也可以默认// 更新速度,应用加速度FVelocity += Acceleration * DeltaTime;// 限制最大速度if (FVelocity.Size() > MaxSpeed){FVelocity = FVelocity.GetSafeNormal() * MaxSpeed;}// 更新 Actor 位置FVector NewLocation = GetOwner()->GetActorLocation() + (FVelocity * DeltaTime);GetOwner()->SetActorLocation(NewLocation);// 重置加速度(如果希望每帧都控制加速度,可以在外部控制)Acceleration = FVector::ZeroVector;
}

3.制作一个简单的空气墙

        1.创建一个UBoxComponent设置SetVisibility(false)将可视性为变成false,设置碰撞类型

SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
SetCollisionResponseToAllChannels(ECR_Block);  // 使得所有物体都会被阻挡
SetCollisionResponseToChannel(ECollisionChannel::ECC_Camera,ECollisionResponse::ECR_Ignore);

        2.创建对应蓝图,拖拽到场景中,调整大小。

http://www.dtcms.com/wzjs/16954.html

相关文章:

  • 网站开发功能模块出错免费搭建网站平台
  • 微信平台商城开发淄博搜索引擎优化
  • 苏州官网网站首页百度sem竞价
  • 没疫情的19个城市seo提高网站排名
  • 网站页面静态化方案竞价广告是什么意思
  • 沈阳专业制作网站台州seo公司
  • 做外贸的如何上国外网站百度推广电话
  • 门户网站制度建设新闻内容摘抄
  • 专业做网站建58同城推广
  • 新的网站做淘宝客百度下载链接
  • 优秀金融网站设计app推广公司怎么对接业务
  • 平顶山住房和城乡建设局网站友情链接检查工具
  • 设计师的个人网站网络舆情的网站
  • 巢湖有没有专门做网站的公司电商平台运营方案
  • 佛山小网站建设抖音排名优化
  • 真人做爰网站东莞网站建设平台
  • 构建企业门户网站的方法国内好用的搜索引擎
  • 周口网站制作公司哪家好优化大师破解版app
  • 衡南网站建设制作自己的网页
  • 临沂专业做网站公司嘉兴seo报价
  • 江苏建站服务南宁百度seo
  • 网站制作 火星科技网络营销中的四种方法
  • 哪个网站是做包装材料珍珠棉包管seo技术优化服务
  • 台湾网站建设公司重庆seo排名外包
  • 大连企业网站建设公司员工培训方案
  • 甘肃省住房与城乡建设部网站免费的郑州网络推广服务
  • 网站安装百度商桥在线网络培训平台
  • 河北中凯建设有限公司网站南京百度推广优化排名
  • 站点提交百度手机助手下载2021新版
  • 推广图片设计如何简洁好看seo推广方法有哪些