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; } } } }
void ChangeGestureEyes(CharacterBrain.EyeGestures eg) { currentEyeGesture = eg; if (PlayerBrain != null) { PlayerBrain.SetEyeGesture(eg); } }
public void SetEyeGesture(CharacterBrain.EyeGestures eyeGesture) { foreach (PlayerHead h in heads) { if (h != null) { h.SetEyeGesture(eyeGesture); } } this.eyeGesture = eyeGesture; }
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); } }
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; } } } }