示例#1
0
    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();
    }
示例#2
0
    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();
    }
示例#3
0
 public void Initialize(AbductionCircle abductionCircle, Action <AbductionCircle> onAbduct)
 {
     this.abductionCircle = abductionCircle;
     this.onAbduct        = onAbduct;
 }