/// <summary> /// 与柱子相撞 /// </summary> /// <param name="col"></param> void onColumnColl(WaterColumn col) { if (col == targetCol) { stop(); } }
/// <summary> /// 使用磁石 /// </summary> void useMagnetite() { var dir = player.direction; var vec = RuntimeCharacter.dir82Vec(dir); //var resList = Physics2D.RaycastAll(pos, vec, magnetiteDist); Collider2D collider2d = Physics2D.OverlapBox(pos, collider.bounds.size, 0f, 1 << 8); for (int i = 1; i < magnetiteDist; i++) { collider2d = Physics2D.OverlapBox(pos + vec * i, collider.bounds.size, 0f, 1 << 8); debugLog(collider2d?.name); debugLog(collider?.bounds.size); var obj = collider2d?.gameObject; targetCol = SceneUtils.get <WaterColumn>(obj); if (targetCol == null) { continue; } runtimeActor.addEnergy(-magnetiteEnergy); moveDirection(dir); break; } //foreach(var res in resList) { // var obj = res.collider?.gameObject; // targetCol = SceneUtils.get<WaterColumn>(obj); // if (targetCol == null) continue; // moveDirection(dir); break; //} }