private void OnAbduct(AbductionCircle abductionCircle) { if (!abductionCircle.isActiveAndEnabled) { return; } abductionCircle.StartEffect(); var remainingHumans = new List <Human>(); humans.ForEach(_human => { _human.UpdateView(abductionCircle); if (abductionCircle.Contains(_human)) { _human.Abducted(); } else { remainingHumans.Add(_human); } }); humans = remainingHumans; remainingCount--; UpdateHudText(); SEManager.Instance.Play(SEPath.UKU); ChallengeNextOrEndGame().Forget(); }
public void UpdateView(AbductionCircle abductionCircle) { var inCircle = abductionCircle.isActiveAndEnabled && abductionCircle.Contains(this); rigidbody.velocity = NormalizedVelocity(rigidbody.velocity, inCircle); var materialList = inCircle ? containedMaterials : defaultMaterials; skinnedMeshRenderer.materials = materialList.ToArray(); }
public void Initialize(AbductionCircle abductionCircle, Action <AbductionCircle> onAbduct) { this.abductionCircle = abductionCircle; this.onAbduct = onAbduct; }