【UE4】 第13講 StaticMeshActor下落過程解析

(版權聲明,禁止轉載)

                                              友情提示:【汽車架構解析】專欄已開始更新


                                              

                                                     

                                                                 

    運行起來Cube自然落到地板上

    整個過程表面上很簡潔直觀

    但是要透徹的理解這個過程,還是對UE4框架的掌握有要求的

                <1> Actor的位置position和旋轉rotation在哪裏存儲

                              

              <2> Actor的位置position和旋轉rotation在哪裏更新

                   ---實際是更新 USceneComponent的ComponentToWorld成員


              <3> 配置的物理相關參數對應於程序裏的哪個部分

                               

            <4> 創建PhysicsState的條件

              ---UStaticMeshComponent默認會調用OnCreatePhysicsState創建Mesh對應的PxRigidActor

              ---如果不想創建對應的PxRigidActor需要設置Collision->碰撞預設置->NoCollision

            <5> 如何單步跟蹤這個下落的過程

              ---單步跟蹤困難主要是由於UE4採用了Task隊列+多線程的架構,

                 把執行流程打散成多個Task分佈到多個線程裏並行


                 通過下面的架構圖可以找到上述問題的答案







      設置的EnableGravity/NoCollision會對應下面的PxActorFlag,設置進PxRigidActor

      默認不勾選Simulate Physics, PhysX還是會EnableSimulation,只是不會EnableGravity

struct PxActorFlag
{
	enum Enum
	{
		/**
		\brief Disables scene gravity for this actor
		*/
		eDISABLE_GRAVITY				= (1<<1),

		/**
		\brief Disables simulation for the actor.
                */
		eDISABLE_SIMULATION				= (1<<3)
	};
};




     理解清楚這個流程,對於編寫UE4相關Plugin是必須的


     但是還是會有一些比較麻煩的問題存在(讀者可以嘗試自行解決)

         默認Cube下落的重力加速度是自然界的值,如何修改這個值來改變下落快慢

        Cube落到地面什麼情況下才會彈起,這個反彈模型又是怎樣的,如何通過相應參數調節

        如果Cube在Floor上水平滑動,如何調節摩擦力大小來改變滑動長度


                          友情提示:【汽車架構解析】專欄已開始更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章