// Start is called before the first frame update new void Start() { base.Start(); spriteRenderer = GetComponent <SpriteRenderer>(); trail = GetComponent <TrailRenderer>(); spriteRenderer.color = Color.white; lastTouchedPaddle = null; baseSpeed = speed; }
public void ChangePaddleScale(float modifier, int duration, bool onLeft) { if (IsServer) { PowerupPongPaddle paddle = onLeft ? leftPaddle.GetComponent <PowerupPongPaddle>() : rightPaddle.GetComponent <PowerupPongPaddle>(); if (paddle.IsBot()) { paddle.ChangePaddleScaleOnClient(modifier, duration); } paddle.InvokeClientRpcOnEveryone(paddle.ChangePaddleScaleOnClient, modifier, duration); } else { InvokeServerRpc(ChangePaddleScale, modifier, duration, onLeft); } }
// Custom collision logic protected override void OnCollisionEnter2D(Collision2D collision) { base.OnCollisionEnter2D(collision); if (IsServer) { // Collision with Paddle if (collision.transform.tag == "Paddle") { // Transform into the color of the last touched paddle spriteRenderer.color = collision.transform.GetComponent <SpriteRenderer>().color; lastTouchedPaddle = collision.transform.GetComponent <PowerupPongPaddle>(); InvokeClientRpcOnEveryone(UpdateColorOnClients, spriteRenderer.color); } } }
private void OnTriggerEnter2D(Collider2D collision) { if (IsServer) { if (collision.tag == "Ball") { PowerupPongPaddle lastTouchedPaddle = collision.GetComponent <PowerupPongBall>().lastTouchedPaddle; if (lastTouchedPaddle != null) { if (lastTouchedPaddle.givePowerup(power)) { // If powerup was given to paddle, deactivate powerup object GetComponent <NetworkedObject>().UnSpawn(); Destroy(gameObject); } } } } }