/// <summary> /// 追加詳細コリジョンヒットフラグ /// </summary> /// <param name="add_collision"></param> /// <returns></returns> public RpgCollisionHit AddCollisionHit(Collider collider, RpgCollisionDetails add_collision, bool comple_add = false) { if (collider == null) { return(null); } if (list_rpg_collision_hit_ == null) { list_rpg_collision_hit_ = new List <RpgCollisionHit>(); } if (comple_add == false) { RpgCollisionHit hit = SearchCollisionHit(collider); if (hit != null) { return(null); } } RpgCollisionHit new_hit = new RpgCollisionHit(); new_hit.Init(collider, add_collision.ThisObject); list_rpg_collision_hit_.Add(new_hit); new_hit.FlagHit(); return(new_hit); }
/// <summary> /// ヒットUpdate /// </summary> /// <param name="hit"></param> public void HitUpdate(RpgCollisionHit hit) { if (hit.GetHitEnter == true && hit_enter_func_ != null) { hit_enter_func_(hit.HitCollision); } if (hit.GetHitSecond == true && hit_second_func_ != null) { hit_second_func_(hit.HitCollision); } if (hit.GetHitRelease == true && hit_release_func_ != null) { hit_release_func_(hit.HitCollision); } }
/// <summary> /// ヒットしたときに呼ぶ関数 /// </summary> /// <param name="collider"></param> /// <returns></returns> public bool CollisionHitEnter(Collider collider, RpgCollisionDetails opponent_col) { if (collider == null || opponent_col == null) { return(false); } if (list_rpg_collision_hit_ == null) { list_rpg_collision_hit_ = new List <RpgCollisionHit>(); } RpgCollisionHit hit = SearchCollisionHit(collider); if (hit == null) { hit = AddCollisionHit(collider, opponent_col, true); } hit.FlagHit(); return(true); }