コード例 #1
0
ファイル: Display.cs プロジェクト: ZabavaGames/Scripts
        // вставить в диалог портрет персонажа через ф-ии Фунгуса
        private Sprite ShowSpeakerFace(Person Pers, bool show)
        {
            Character currentCharacter;

            if ((currentCharacter = GetChar(Pers)) == null)
            {
                return(null);
            }
            Sprite currentPortrait;

            if ((currentPortrait = FindFaceByNumber(currentCharacter, Pers.Portrait)) == null)
            {
                return(null);
            }
            Debug.Log("Pers is " + Pers + " show " + show);
// перс почему-то два раза подряд вызывается, к тому же отмена накладывается на след. показ

            var stage           = Stage.GetActiveStage();
            var portraitOptions = new PortraitOptions(true);

            portraitOptions.character = currentCharacter;
            portraitOptions.portrait  = currentPortrait;
            portraitOptions.display   = show ? DisplayType.Show : DisplayType.Hide;
            string Position = show ? "Left" : "OffscreenLeft";

            portraitOptions.toPosition        = stage.GetPosition(Position);
            portraitOptions.waitUntilFinished = true;
            portraitOptions.fadeDuration      = 0f;

            if (show && !SpeakingCharLeft)
            {
                if (stage.CharactersOnStage.Contains(currentCharacter) == false)
                {
                    stage.Show(portraitOptions);
                }
                SpeakingCharLeft = true;
            }
            else if (!show && SpeakingCharLeft)
            {
                stage.Hide(portraitOptions);
                SpeakingCharLeft = false;
            }

            return(currentPortrait);
        }
コード例 #2
0
ファイル: Portrait.cs プロジェクト: gdseller/fungus
        public override void OnEnter()
        {
            // Selected "use default Portrait Stage"
            if (stage == null)
            {
                // If no default specified, try to get any portrait stage in the scene
                stage = FindObjectOfType <Stage>();
                // If portrait stage does not exist, do nothing
                if (stage == null)
                {
                    Continue();
                    return;
                }
            }

            // If no display specified, do nothing
            if (IsDisplayNone(display))
            {
                Continue();
                return;
            }

            PortraitOptions options = new PortraitOptions();

            options.character          = character;
            options.replacedCharacter  = replacedCharacter;
            options.portrait           = portrait;
            options.display            = display;
            options.offset             = offset;
            options.fromPosition       = fromPosition;
            options.toPosition         = toPosition;
            options.facing             = facing;
            options.useDefaultSettings = useDefaultSettings;
            options.fadeDuration       = fadeDuration;
            options.moveDuration       = moveDuration;
            options.shiftOffset        = shiftOffset;
            options.move              = move;
            options.shiftIntoPlace    = shiftIntoPlace;
            options.waitUntilFinished = waitUntilFinished;

            stage.RunPortraitCommand(options, Continue);
        }