// Use this for initialization void Start() { rm = GetComponent <RaylineModel>(); rm.OnDeadEvent += OnDeadEvent; trans = GetComponent <RectTransform>(); trans.localPosition = rm.CurrentPos; if (rm.targetPos.y - rm.fromPos.y < 0) { trans.rotation = Quaternion.Euler(new Vector3(0, 0, -rm.Degree)); } else { trans.rotation = Quaternion.Euler(new Vector3(0, 0, rm.Degree)); } }
private void OnEnemyHit(PlayerController beenHit, GameObject other) { if (other.name.IndexOf("RayLineObject") != -1) { RaylineModel rm = other.GetComponent <RaylineModel>(); RayLineView rv = other.GetComponent <RayLineView>(); try { if (rv.Weapon.Owner.GetComponent <PlayerController>() == beenHit) { return; } } catch { //maybe player die now! } Vector3 dir = rm.targetPos - rm.fromPos; beenHit.Hit(dir, rm.speed, 10); if (beenHit.HP == 0) { beenHit.OnHitEvent = null; beenHit.GetComponent <AgeCalculator>().OnDeadEvent = null; vc.CreateExplodeEffect(beenHit.Position, beenHit.color); vc.DestoryEnemy(beenHit.gameObject); vc.PlayDeadSound(); } else { if (beenHit == vc.Player) { vc.MakeEnemyHitEffect(beenHit, Color.white); } else { vc.MakeEnemyHitEffect(beenHit, vc.EnemyColor); } } Destroy(other.gameObject); } }