Пример #1
0
        public void AddToCloseUpTargetGroup(CharacterControl unit)
        {
            Transform spine = unit.GetSpine();

            if (closeUpTargetGroup.FindMember(spine) == -1)
            {
                closeUpTargetGroup.AddMember(spine, unit.CharacterData.TargetGroupWeight, unit.CharacterData.TargetGroupRadius);
            }
        }
Пример #2
0
        public void AddToTargetGroup(CharacterControl unit)
        {
            Transform spine = unit.GetSpine();

            //Debug.Log (spine);
            if (targetGroup.FindMember(spine) == -1)
            {
                targetGroup.AddMember(spine, unit.CharacterData.TargetGroupWeight, unit.CharacterData.TargetGroupRadius);
            }
        }
Пример #3
0
 public void Remove(Transform transformToRemove)
 {
     if (tg.FindMember(transformToRemove) >= 0)
     {
         playerCount--;
     }
     tg.RemoveMember(transformToRemove);
 }
Пример #4
0
    public void Focus(Transform target)
    {
        if (!target)
        {
            FocusOut();
        }

        int index = cineGroup.FindMember(target);

        for (int i = 0; i < cineGroup.m_Targets.Length; i++)
        {
            cineGroup.m_Targets[i].weight = i == index ? 1 : 0;
        }
    }
Пример #5
0
 public void SetFollowAndTarget()
 {
     PlayerController[] players = GameObject.FindObjectsOfType <PlayerController>();
     if (players.Length > 0)
     {
         foreach (PlayerController player in players)
         {
             if (targets.FindMember(player.gameObject.transform) < 0)
             {
                 targets.AddMember(player.gameObject.transform, 1, 1);
             }
         }
     }
 }
Пример #6
0
        private IEnumerator IncreaseWeight(GameObject objToIncrease)
        {
            var currentWeight     = settings.startWeight;
            var currentWeightLerp = 0f;
            var currentRadius     = settings.startRadius;
            var currentRadiusLerp = 0f;

            _target.AddMember(objToIncrease.transform, currentWeight, currentRadius);
            var member = _target.FindMember(objToIncrease.transform);

            var endFrame = new WaitForEndOfFrame();

            yield return(endFrame);

            while (currentRadiusLerp < 1 && currentWeightLerp < 1)
            {
                //currentRadius += Time.deltaTime * (endRadius - startRadius) * (1f/lerpDuration);
                currentRadiusLerp += Time.deltaTime * (1f / settings.lerpDuration);
                //currentWeight += Time.deltaTime * (endWeight - startWeight) * (1f/lerpDuration);
                currentWeightLerp += Time.deltaTime * (1f / settings.lerpDuration);


                _target.m_Targets[member].radius = Mathf.Lerp(settings.startRadius, settings.endRadius, currentRadiusLerp);
                _target.m_Targets[member].weight = Mathf.Lerp(settings.startWeight, settings.endWeight, currentWeightLerp);

                yield return(endFrame);
            }

            currentRadiusLerp = 1;
            currentWeightLerp = 1;

            yield return(new WaitForSeconds(1f));

            while (currentWeightLerp > 0 && currentRadiusLerp > 0)
            {
                currentRadiusLerp -= Time.deltaTime * (1f / settings.lerpDuration);
                currentWeightLerp -= Time.deltaTime * (1f / settings.lerpDuration);


                _target.m_Targets[member].radius = Mathf.Lerp(settings.startRadius, settings.endRadius, currentRadiusLerp);
                _target.m_Targets[member].weight = Mathf.Lerp(settings.startWeight, settings.endWeight, currentWeightLerp);

                yield return(endFrame);
            }

            _target.RemoveMember(objToIncrease.transform);
            _routines.Remove(objToIncrease);
        }
 public override void Interact()
 {
     _child.Interact();
     if (dependancies.Count == 0)
     {
         return;
     }
     foreach (var interaction in dependancies.Where(interaction => interaction))
     {
         interaction.Interact();
         if (_targetGroupController != null && _target != null && _target.FindMember(interaction.transform) == -1)
         {
             _targetGroupController.AddObjectToTargetGroup(interaction.gameObject);
         }
     }
 }
        public IEnumerator ChangeCamTargetWeight(Transform bouncer, float weight)
        {
            float currentWeight = cameraTargetGroup.m_Targets[cameraTargetGroup.FindMember(bouncer)].weight;
            bool  high          = false;

            if (weight > currentWeight)
            {
                high = true;

                //lerping up
                while (currentWeight < .99f)
                {
                    currentWeight = Mathf.Lerp(currentWeight, weight, Time.deltaTime);

                    cameraTargetGroup.m_Targets[cameraTargetGroup.FindMember(bouncer)].weight = currentWeight;

                    // print("changing cam weight running (up): " + currentWeight);
                    yield return(null);
                }
            }

            else if (weight < currentWeight)
            {
                high = false;

                //lerping down
                while (currentWeight > .01f)
                {
                    currentWeight = Mathf.Lerp(currentWeight, weight, Time.deltaTime);

                    cameraTargetGroup.m_Targets[cameraTargetGroup.FindMember(bouncer)].weight = currentWeight;

                    yield return(null);
                }
            }

            if (high)
            {
                cameraTargetGroup.m_Targets[cameraTargetGroup.FindMember(bouncer)].weight = 1;
            }
            if (!high)
            {
                cameraTargetGroup.m_Targets[cameraTargetGroup.FindMember(bouncer)].weight = 0;
            }
        }
Пример #9
0
    IEnumerator CheckInvadersRoutine()
    {
        // Red
        for (int i = 0; i < battleInfo.redInvaders.Count; i++)
        {
            if (redInvadersTg.FindMember(battleInfo.redInvaders[i].transform) == -1)
            {
                redInvadersTg.AddMember(battleInfo.redInvaders[i].transform, 0, 0);
            }
        }

        for (int i = 0; i < redInvadersTg.m_Targets.Length; i++)
        {
            if (!battleInfo.redInvaders.Contains(redInvadersTg.m_Targets[i].target.GetComponent <LittleDude>()))
            {
                redInvadersTg.RemoveMember(redInvadersTg.m_Targets[i].target);
            }
        }

        // Blue
        for (int i = 0; i < battleInfo.blueInvaders.Count; i++)
        {
            if (blueInvadersTg.FindMember(battleInfo.blueInvaders[i].transform) == -1)
            {
                blueInvadersTg.AddMember(battleInfo.blueInvaders[i].transform, 0, 0);
            }
        }

        for (int i = 0; i < blueInvadersTg.m_Targets.Length; i++)
        {
            if (!battleInfo.blueInvaders.Contains(blueInvadersTg.m_Targets[i].target.GetComponent <LittleDude>()))
            {
                blueInvadersTg.RemoveMember(blueInvadersTg.m_Targets[i].target);
            }
        }

        yield return(new WaitForSeconds(1));

        StartCoroutine(CheckInvadersRoutine());
    }
Пример #10
0
        private void OnEnable()
        {
            var cameras = GameObject.Find("Cameras");

            if (!cameras)
            {
                return;
            }

            var tgt = cameras.transform.Find(TargetGroupName);

            if (!tgt)
            {
                return;
            }

            _group = tgt.GetComponent <CinemachineTargetGroup>();
            if (_group && _group.FindMember(transform) == -1)
            {
                _group.AddMember(transform, Weight, Radius);
            }
        }