void Handle(CollisionEnter2DEvent e) { Debug.Log("Enter Collision Event"); constraint.ForEachGameObject((egoComponent, spriteRenderer, collisionComponent, lineRenderer, movement, player) => { SpriteRenderer shipSprite; PlayerComponent playerC; //Return if colliding Object has no SpriteRenderer if (!e.egoComponent1.TryGetComponents(out shipSprite)) { return; } //Else change Sprite to Explosion, if you collided with a spaceship else if (e.egoComponent2.TryGetComponents(out playerC) && e.egoComponent1.TryGetComponents(out playerC)) { //e.egoComponent1.GetComponent<SpriteRenderer>().sprite = collisionComponent.explodingSprite; if (e.egoComponent1.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying && e.egoComponent2.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying) { var ev = new DamageEvent(player.playerID, false); Debug.Log("Damage Event called cause players collided"); EgoEvents <DamageEvent> .AddEvent(ev); } //Unschön, vielleicht geht das ja auch aus dem DamageEvent heraus? /*MovementComponent movementComponent; * if (!e.egoComponent1.TryGetComponents(out movementComponent)) { * return; * } * else { * movementComponent.myFlyStatus = MovementComponent.FlyStatus.notFlying; * }*/ } PowerUpComponent powerup; if (!e.egoComponent2.TryGetComponents(out powerup)) { return; } else if (e.egoComponent2.TryGetComponents(out powerup)) { Debug.Log("powerup collected"); Ego.AddComponent <HasSpeedUpComponent>(e.egoComponent1); e.egoComponent1.GetComponent <PlayerPowerUpComponent>().playerPowerUpTimer = 0; //e.egoComponent2.gameObject.SetActive(false); e.egoComponent2.gameObject.GetComponent <SpriteRenderer>().enabled = false; e.egoComponent2.gameObject.GetComponent <CircleCollider2D>().enabled = false; var ev = new OnSpeedUpPickUp(e.egoComponent1.GetComponent <PlayerComponent>().playerID); EgoEvents <OnSpeedUpPickUp> .AddEvent(ev); } }); }
void Handle(OnSpeedUpPickUp e) { constraint.ForEachGameObject((egoComponent, transform, powerUpUIComponent) => { if (e.playerID == 1) { if (powerUpUIComponent.playerID == 1) { egoComponent.gameObject.GetComponent <SpriteRenderer>().enabled = true; } } else if (e.playerID == 2) { if (powerUpUIComponent.playerID == 2) { egoComponent.gameObject.GetComponent <SpriteRenderer>().enabled = true; } } }); }