/// <summary> /// Callback called once the bomb is hit by the blade. /// </summary> /// <param name="jsonVars"> Blade hit data. </param> void OnBombGotHit(string jsonVars) { BladeHitData objVars = ScriptableObject.CreateInstance <BladeHitData>(); JsonUtility.FromJsonOverwrite(jsonVars, objVars); if (objVars.hitID == gameObject.GetInstanceID()) { //print("Bomb: OnBombGotHit"); currentLife--; // This bomb has no my life - destroy it and award the player for it. if (currentLife == 0) { // Create the sliced bomb according the blade's hit direction. Quaternion rotation = Quaternion.LookRotation(objVars.bladeDir); GameObject slicedBomb = Instantiate(bombSlicedPrefab, transform.position, rotation); string jsonAwardVars = JsonUtility.ToJson(awardData); EventManager.TriggerEvent("AWARD_DATA_EVENT", jsonAwardVars); ObjectPooler.Instance.ReturnToPool(gameObject); UserModel.Instance.BombsSliced++; Destroy(slicedBomb, 3f); } } }
private void OnTriggerEnter2D(Collider2D col) { // Unique id of the object hit. int hitID = col.gameObject.GetInstanceID(); // Create the scriptable data object of a hit. bladeHitData = ScriptableObject.CreateInstance <BladeHitData>(); bladeHitData.bladeDir = direction; bladeHitData.bladePos = transform.position; bladeHitData.hitID = hitID; string jsonVars = JsonUtility.ToJson(bladeHitData); EventManager.TriggerEvent("BLADE_HIT_DATA_EVENT", jsonVars); }
/// <summary> /// Callback called once the booster is hit by the blade. /// </summary> /// <param name="jsonVars"> Blade hit data.</param> void OnBoosterHit(string jsonVars) { //print("Booster: OnBoosterHit"); BladeHitData objVars = ScriptableObject.CreateInstance <BladeHitData>(); JsonUtility.FromJsonOverwrite(jsonVars, objVars); // Only award for the booster hit by the blade. if (objVars.hitID == gameObject.GetInstanceID()) { string jsonAwardVars = JsonUtility.ToJson(awardData); EventManager.TriggerEvent("AWARD_DATA_EVENT", jsonAwardVars); ObjectPooler.Instance.ReturnToPool(gameObject); } }