private void Awake() { gameOverEvent = new GameOverEvent(); addScoreEvent = new AddScoreEvent(); powerPickupEvent = new PowerPickupEvent(); stickToPaddleEvent = new StickToPaddleEvent(); coinPickUpEvent = new CoinPickUpEvent(); explodeEvent = new ExplodeEvent(); ballHitEvent = new BallHitEvent(); brickDamageEvent = new BrickDamageEvent(); }
private void Update() { // Works with mobile as well if (Input.GetMouseButtonDown(0)) { RaycastHit2D hit = Physics2D.Raycast(cam.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); if (hit.collider != null) { Ball ball = hit.collider.GetComponent <Ball>(); if (ball) { // Get direction from hit point to ball Vector2 direction = ((Vector2)ball.transform.position - hit.point).normalized; ball.AddForce(direction * force, ForceMode2D.Impulse); ball.AddTorque(Random.Range(-torque, torque)); BallHitEvent?.Invoke(hit.point); } } } }
private void GenBallHitEvent(string _paddleID_) { BallHitEvent e = new BallHitEvent(_paddleID_); eventLog.AddEvent(e.type, JsonConvert.SerializeObject(e, Formatting.Indented, GeneralUtils.jss)); }