zoukankan      html  css  js  c++  java
  • [UE4]重构Grab和Drop

    一、在前面的实例中是把Grab和Drop逻辑放到SimVRHand手柄对象里面,从面向对象来看,Grab和Drop逻辑应该放在被抓取的对象中,因为可能每个对象被抓取后要执行的Grab和Drop逻辑都不太一样:武器被抓取、门被抓取、抽屉被抓取的逻辑是不一样的,每个对象最清楚自己的业务逻辑。

    二、新建一个名为“GrabTargetActor”的Actor,并添加一个StaticMesh,开启模拟物理,并勾选“Generate Overlap Events(产生碰撞事件)”

      

        

    三、给“GrabTargetActor”添加2个函数:OnGrab(被抓取时被调用)、OnDrop(被抓取释放后被调用)。

      如果下图中的StaticMesh作为Actor的根节点,则不需要重新附加根节点,因为其本身就是跟节点。当如图中的StaticMesh不是根节点,并且开启了模拟物理,则需要手动重新附加到根节点。

      

     四、虽然GrabTargetActor中设置的静态模型是一个立方体,但是放到关卡中以后,如图所示,是可以单独修改每个GarbTargetActor实例里面的组件属性的。

      利用该特性,可以很方便的做成扩展性比较强的功能来。

      

    五、Scene Component是Skeletal Mesh的父类,因此OnGrab定义的Hand为Scene Component,在调用OnGrab是可以将Skeletal Mesh类型的变量传递进来。

       

  • 相关阅读:
    #Responsive# 响应式图片//www.w3cplus.com/blog/tags/509.html 整个系列完结。
    用js实现帧动画
    js判断对象是否存在
    canvas
    函数的四种调用模式
    递归真的好难啊!!! 看完之后好多了
    词法作用域
    变量名提升
    ajax调用后台Java
    左图又文字自适应
  • 原文地址:https://www.cnblogs.com/timy/p/10502823.html
Copyright © 2011-2022 走看看