/// <summary> /// Sets the active speaking character. /// </summary> /// <param name="character">The active speaking character.</param> public virtual void SetCharacter(Character character) { if (character == null) { if (characterImage != null) { characterImage.gameObject.SetActive(false); } /*if (nameText != null) * { * nameText.text = ""; * }*/ speakingCharacter = null; } else { var prevSpeakingCharacter = speakingCharacter; speakingCharacter = character; // Dim portraits of non-speaking characters var activeStages = Stage.ActiveStages; for (int i = 0; i < activeStages.Count; i++) { var stage = activeStages[i]; if (stage.DimPortraits) { var charactersOnStage = stage.CharactersOnStage; for (int j = 0; j < charactersOnStage.Count; j++) { var c = charactersOnStage[j]; if (prevSpeakingCharacter != speakingCharacter) { if (c != null && !c.Equals(speakingCharacter)) { stage.SetDimmed(c, true); } else { stage.SetDimmed(c, false); } } } } } string characterName = character.NameText; if (characterName == "") { // Use game object name as default characterName = character.GetObjectName(); } SetCharacterName(characterName, character.NameColor); } }
/// <summary> /// Sets the active speaking character. /// </summary> /// <param name="character">The active speaking character.</param> // 设置对话的角色显示 // * 设置名称 // * 设置Stage上,对话的角色的,显示隐藏 public virtual void SetCharacter(Character character) { // 隐藏显示的角色 if (character == null) { // 清空角色显示 if (characterImage != null) { characterImage.gameObject.SetActive(false); } // 清空名称 if (NameText != null) { NameText = ""; } speakingCharacter = null; } else { // 设置新的对话角色 var prevSpeakingCharacter = speakingCharacter; speakingCharacter = character; // Dim portraits of non-speaking characters // 遍历, // 所有的Stage var activeStages = Stage.ActiveStages; for (int i = 0; i < activeStages.Count; i++) { var stage = activeStages[i]; if (stage.DimPortraits) { // 遍历 // Stage上的所有角色 var charactersOnStage = stage.CharactersOnStage; for (int j = 0; j < charactersOnStage.Count; j++) { var c = charactersOnStage[j]; // 是否有切换 // 说话的角色 if (prevSpeakingCharacter != speakingCharacter) { // 遍历到的角色 // 不是当前说句的角色 if (c != null && !c.Equals(speakingCharacter)) { stage.SetDimmed(c, true); } else { // 是当前说话的角色 stage.SetDimmed(c, false); } } } } } // 设置 // 当前说话的,角色名称 string characterName = character.NameText; if (characterName == "") { // Use game object name as default characterName = character.GetObjectName(); } SetCharacterName(characterName, character.NameColor); } }
/// <summary> /// Sets the active speaking character. /// </summary> /// <param name="character">The active speaking character.</param> public virtual void SetCharacter(Character character) { if (character == null) { if (characterImage != null) { characterImage.gameObject.SetActive(false); } if (nameText != null) { nameText.text = ""; } speakingCharacter = null; } else { var prevSpeakingCharacter = speakingCharacter; speakingCharacter = character; // Dim portraits of non-speaking characters var activeStages = Stage.ActiveStages; for (int i = 0; i < activeStages.Count; i++) { var stage = activeStages[i]; if (stage.DimPortraits) { var charactersOnStage = stage.CharactersOnStage; for (int j = 0; j < charactersOnStage.Count; j++) { var c = charactersOnStage[j]; if (prevSpeakingCharacter != speakingCharacter) { if (c != null && !c.Equals(speakingCharacter)) { stage.SetDimmed(c, true); } else { stage.SetDimmed(c, false); } } } } } string characterName = character.NameText; if (characterName == "") { // Use game object name as default characterName = character.GetObjectName(); } SetCharacterName(characterName, character.NameColor); } }