Esempio n. 1
0
        public void SetEyeGesture(CharacterBrain.EyeGestures eyeGesture)
        {
            if (anPupils != null && anPupils.isActiveAndEnabled)
            {
                anPupils.SetInteger("state", (int)eyeGesture);
            }

            if (elroyBrain != null && anPupils != null)
            {
                CharacterHead partner = elroyBrain.conversationPartner;
                if (partner != null)
                {
                    float dy = partner.transform.position.y - anPupils.transform.position.y;

                    if (partner is PlayerHead)
                    {
                        if ((partner as PlayerHead).anPupils != null)
                        {
                            dy = (partner as PlayerHead).anPupils.transform.position.y - anPupils.transform.position.y;
                        }
                    }

                    dy /= 1.5f;

                    if (dy > 1)
                    {
                        dy = 1;
                    }
                    if (dy < -1)
                    {
                        dy = -1;
                    }
                }
            }
        }
Esempio n. 2
0
 void ChangeGestureEyes(CharacterBrain.EyeGestures eg)
 {
     currentEyeGesture = eg;
     if (PlayerBrain != null)
     {
         PlayerBrain.SetEyeGesture(eg);
     }
 }
Esempio n. 3
0
        public void SetEyeGesture(CharacterBrain.EyeGestures eyeGesture)
        {
            foreach (PlayerHead h in heads)
            {
                if (h != null)
                {
                    h.SetEyeGesture(eyeGesture);
                }
            }

            this.eyeGesture = eyeGesture;
        }
Esempio n. 4
0
        IEnumerator AnimatePupils()
        {
            while (true)
            {
                yield return(new WaitForSeconds(1 + Random.value * 2.5f));

                CharacterBrain.EyeGestures eyeGesture = CharacterBrain.EyeGestures.idle;

                if (elroyBrain != null)
                {
                    eyeGesture = elroyBrain.GetCurrentEyeGesture();
                }

                SetEyeGesture(eyeGesture);
            }
        }
Esempio n. 5
0
        public void ChangeTalkMode(string mode)
        {
            if (!staticCharacter && state == State.TalkDiagonal && !string.IsNullOrEmpty(mode))
            {
                string[] parts = mode.Split('/');

                if (parts.Length == 1)
                {
                    try
                    {
                        CharacterBrain.GestureConfigurations conf = (CharacterBrain.GestureConfigurations)Enum.Parse(typeof(CharacterBrain.GestureConfigurations), parts[0]);
                        ChangeGestureConfiguration(conf);
                    }
                    catch
                    {
                        Debug.LogWarning("Couldn't parse gesture configuration " + mode + " " + parts[0]);
                    }
                }
                else if (parts.Length >= 2)
                {
                    switch (parts[0])
                    {
                    case "arms":
                        try
                        {
                            CharacterBrain.ArmGestures gest = (CharacterBrain.ArmGestures)Enum.Parse(typeof(CharacterBrain.ArmGestures), parts[1]);
                            ChangeGestureArms(gest);
                        }
                        catch
                        {
                            Debug.LogWarning("Couldn't parse gesture arms " + mode + " " + parts[1]);
                        }
                        break;

                    case "eyes":
                        try
                        {
                            CharacterBrain.EyeGestures gest = (CharacterBrain.EyeGestures)Enum.Parse(typeof(CharacterBrain.EyeGestures), parts[1]);
                            ChangeGestureEyes(gest);
                        }
                        catch
                        {
                            Debug.LogWarning("Couldn't parse gesture eyes " + mode + " " + parts[1]);
                        }
                        break;

                    case "head":
                        try
                        {
                            CharacterBrain.HeadGestures gest = (CharacterBrain.HeadGestures)Enum.Parse(typeof(CharacterBrain.HeadGestures), parts[1]);
                            ChangeGestureHead(gest);
                        }
                        catch
                        {
                            Debug.LogWarning("Couldn't parse gesture head " + mode + " " + parts[1]);
                        }
                        break;

                    case "neck":
                        try
                        {
                            CharacterBrain.NeckGestures gest = (CharacterBrain.NeckGestures)Enum.Parse(typeof(CharacterBrain.NeckGestures), parts[1]);
                            ChangeGestureNeck(gest);
                        }
                        catch
                        {
                            Debug.LogWarning("Couldn't parse gesture neck " + mode + " " + parts[1]);
                        }
                        break;

                    case "body":
                        try
                        {
                            CharacterBrain.BodyGestures gest = (CharacterBrain.BodyGestures)Enum.Parse(typeof(CharacterBrain.BodyGestures), parts[1]);
                            ChangeGestureBody(gest);
                        }
                        catch
                        {
                            Debug.LogWarning("Couldn't parse gesture body " + mode + " " + parts[1]);
                        }
                        break;

                    default:
                        Debug.LogWarning("Unknown gesture type, " + mode);
                        break;
                    }
                }
            }
        }