
1.策划数学模型 2.搬迁工具类如单例模式模板 3.创建玩家类,用于接受和发出指令、记录玩家信息等 4.创建马类,用来接受信息、物理计算、控制马的碰撞等模拟等 5.实装数学模型,实现马脚的控制 6.探索物理实现方式,给控制点加上碰撞体和刚体,似乎可行 --NG,分离的刚体无法作为整体传递力,脚的反作用力传不到身体上 7.把操控分组,左摇杆控制后两条腿、右摇杆控制前两条腿 8.探索物理的实现方式,尝试仅在主物体上挂载仅一个刚体,探索碰撞体组的使用方式/ ((1.给马添加四个碰撞体代表马足 ((2.每帧刷新碰撞体的偏移,使其对准真实马蹄位置,所以需要找准offset和世界空间下位置的对应关系 ((3.如何让马前进?目前发现无法使用真实物理的反作用力,只能根据输入或其他信息算出这个反作用力 (((1.最终应该通过原速度 + 计算出输入速度,不能使用力,因为使用力涉及的参数极多,很难修改 (((2.应该通过马足真实位置计算输入速度,不能使用控制点位置 (((3.每只足应该记住自己上一帧的位置,并每帧更新 ((4.本帧位置减上帧位置 = 运动速度,一个二维向量 ((5.并非一直有效,当本帧马足位置低于圆心 + 调整值时,才有效,否则该足贡献的速度为0.同时,需要有输入才有效,若无输入,同样贡献速度为0 ((6.NG,主要在判断速度是否有效上出了问题,试试每帧给足和地面测距,小于阈值的才给过,然后才加速度 ((7.GoodJob!通过上述方法和其他细微调整,已经使得马可以行走,并且得到不错的效果。但是肯定还有问题,需要后期更进一步调整 目前马能够受到控制,并且可以走动。同样支持键盘游玩,但是体验极差
57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
%YAML 1.1
|
|
%TAG !u! tag:unity3d.com,2011:
|
|
--- !u!19 &1
|
|
Physics2DSettings:
|
|
m_ObjectHideFlags: 0
|
|
serializedVersion: 5
|
|
m_Gravity: {x: 0, y: -9.81}
|
|
m_DefaultMaterial: {fileID: 0}
|
|
m_VelocityIterations: 8
|
|
m_PositionIterations: 3
|
|
m_VelocityThreshold: 1
|
|
m_MaxLinearCorrection: 0.2
|
|
m_MaxAngularCorrection: 8
|
|
m_MaxTranslationSpeed: 100
|
|
m_MaxRotationSpeed: 360
|
|
m_BaumgarteScale: 0.2
|
|
m_BaumgarteTimeOfImpactScale: 0.75
|
|
m_TimeToSleep: 0.5
|
|
m_LinearSleepTolerance: 0.01
|
|
m_AngularSleepTolerance: 2
|
|
m_DefaultContactOffset: 0.01
|
|
m_JobOptions:
|
|
serializedVersion: 2
|
|
useMultithreading: 0
|
|
useConsistencySorting: 0
|
|
m_InterpolationPosesPerJob: 100
|
|
m_NewContactsPerJob: 30
|
|
m_CollideContactsPerJob: 100
|
|
m_ClearFlagsPerJob: 200
|
|
m_ClearBodyForcesPerJob: 200
|
|
m_SyncDiscreteFixturesPerJob: 50
|
|
m_SyncContinuousFixturesPerJob: 50
|
|
m_FindNearestContactsPerJob: 100
|
|
m_UpdateTriggerContactsPerJob: 100
|
|
m_IslandSolverCostThreshold: 100
|
|
m_IslandSolverBodyCostScale: 1
|
|
m_IslandSolverContactCostScale: 10
|
|
m_IslandSolverJointCostScale: 10
|
|
m_IslandSolverBodiesPerJob: 50
|
|
m_IslandSolverContactsPerJob: 50
|
|
m_SimulationMode: 0
|
|
m_QueriesHitTriggers: 1
|
|
m_QueriesStartInColliders: 1
|
|
m_CallbacksOnDisable: 1
|
|
m_ReuseCollisionCallbacks: 1
|
|
m_AutoSyncTransforms: 0
|
|
m_AlwaysShowColliders: 0
|
|
m_ShowColliderSleep: 1
|
|
m_ShowColliderContacts: 0
|
|
m_ShowColliderAABB: 0
|
|
m_ContactArrowScale: 0.2
|
|
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
|
|
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
|
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
|
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
|
m_LayerCollisionMatrix: fffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|