void DoSkill(SkillInfo skill, ObjectData objData, Physics2DData physics2DData, ActorData actorData) { switch (skill.skillType) { case SkillType.Fly: var flyData = objData.GetData <ActorFlyData>(); flyData.duration = skill.duration; flyData.currentDuration = 0; objData.SetDirty(flyData, physics2DData, actorData); break; case SkillType.Dash: var dashData = objData.GetData <ActorDashData>(); dashData.duration = skill.duration; dashData.currentDuration = 0; objData.SetDirty(dashData, physics2DData, actorData); break; case SkillType.Stress: var stressData = objData.GetData <ActorStressData>(); stressData.duration = skill.duration; stressData.currentDuration = 0; objData.SetDirty(stressData, physics2DData, actorData); break; } }
void UpdateRigidbody(Physics2DData data) { rb = rb ?? GetComponent <Rigidbody2D>(); rb.velocity = data.velocity; transform.position = data.position; transform.rotation = data.rotation; rb.angularVelocity = data.angularVelocity; }
// Update is called once per frame void Update() { rb = rb ?? GetComponent <Rigidbody2D>(); if (!hasAuthority) { return; } Physics2DData p2d = new Physics2DData(rb); CmdSetData(p2d); }
void CmdSetData(Physics2DData p2d) { data = p2d; }