public void Update() { Vector3 ssPositionOld = Camera.main.WorldToScreenPoint(transform.position); if (CurrentAction == NpcAction.Idle || CurrentAction == NpcAction.Idle3 || CurrentAction == NpcAction.Walk) { TimeSinceActionChange += Time.deltaTime; if (TimeUntilActionChange <= TimeSinceActionChange) { ToggleAction(); } } else if (!CurrentTiming.Loop && CurrentTiming.Ended && CurrentAction != NpcAction.Hide) { ToggleAction(); } if (CurrentAction != NpcAction.Talk) { if (CanTalk && (NPC.Speech.Count > 0 || NPC.CustomSpeechLine != null)) { Talk(); } if (CurrentAction == NpcAction.Walk) { Walk(); } } else if (StopTalking() && CurrentAction != NpcAction.TakeOff) { ToggleAction(); } Vector3 ssPosition = Camera.main.WorldToScreenPoint(transform.position); bool lookingRight; if (FezHelper.AlmostEqual(ssPositionOld.x, ssPosition.x)) { lookingRight = LookingRight; } else { lookingRight = ssPositionOld.x < ssPosition.x; } if (lookingRight) { transform.LookAt(transform.position + (transform.position - Camera.main.transform.position)); } else { transform.LookAt(Camera.main.transform.position); } }
public void Update() { Vector3 ssPositionOld = Camera.main.WorldToScreenPoint(transform.position); if (CurrentAction == NpcAction.Idle || CurrentAction == NpcAction.Idle3 || CurrentAction == NpcAction.Walk) { TimeSinceActionChange += Time.deltaTime; if (TimeUntilActionChange <= TimeSinceActionChange) { ToggleAction(); } } else if (!CurrentTiming.Loop && CurrentTiming.Ended && CurrentAction != NpcAction.Hide) { ToggleAction(); } bool shouldStopTalking = ShouldStopTalking != null && ShouldStopTalking(this); if (shouldStopTalking) { CurrentTextLine = -1; } if (CurrentAction != NpcAction.Talk) { if (ShouldStartTalking != null && CanTalk && (NPC.Speech.Count > 0 || NPC.CustomSpeechLine != null) && CurrentTextLine == -1 && ShouldStartTalking(this)) { CurrentAction = NpcAction.Talk; UpdateText(0); } if (CurrentAction == NpcAction.Walk) { Walk(); } } else if ((shouldStopTalking || CurrentTextLine < 0 || CurrentTextLine >= NPC.Speech.Count) && CurrentAction != NpcAction.TakeOff) { StartCoroutine(FadeTextOut()); ToggleAction(); } else { Talking(this); } transform.LookAt(transform.position + (transform.position - Camera.main.transform.position)); Vector3 ssPosition = Camera.main.WorldToScreenPoint(transform.position); bool lookingRight; if (FezHelper.AlmostEqual(ssPositionOld.x, ssPosition.x)) { lookingRight = LookingRight; } else { lookingRight = ssPositionOld.x < ssPosition.x; } if ((!lookingRight && 0f < meshRenderer.sharedMaterial.mainTextureScale.x) || (lookingRight && meshRenderer.sharedMaterial.mainTextureScale.x < 0f)) { CurrentAnimation.FlipH = !lookingRight; } }