Browse Source

Fixed moving and fading portraits at the same time

master
chrisgregan 10 years ago
parent
commit
d71df99c2a
  1. 10
      Assets/Fungus/Narrative/Scripts/Commands/Portrait.cs

10
Assets/Fungus/Narrative/Scripts/Commands/Portrait.cs

@ -66,11 +66,9 @@ namespace Fungus
[Tooltip("Move the portrait from this position")] [Tooltip("Move the portrait from this position")]
public RectTransform fromPosition; public RectTransform fromPosition;
protected RectTransform fromPositionition;
[Tooltip("Move the portrait to this positoin")] [Tooltip("Move the portrait to this positoin")]
public RectTransform toPosition; public RectTransform toPosition;
protected RectTransform toPositionition;
[Tooltip("Direction character is facing")] [Tooltip("Direction character is facing")]
public FacingDirection facing; public FacingDirection facing;
@ -360,11 +358,11 @@ namespace Fungus
fromPosition = Instantiate(toPosition) as RectTransform; fromPosition = Instantiate(toPosition) as RectTransform;
if (offset == PositionOffset.OffsetLeft) if (offset == PositionOffset.OffsetLeft)
{ {
fromPosition.anchoredPosition = new Vector2(fromPosition.anchoredPosition.x-Mathf.Abs(shiftOffset.x), fromPosition.anchoredPosition.y-Mathf.Abs(shiftOffset.y)); fromPosition.anchoredPosition = new Vector2(fromPosition.anchoredPosition.x - Mathf.Abs(shiftOffset.x), fromPosition.anchoredPosition.y - Mathf.Abs(shiftOffset.y));
} }
else if (offset == PositionOffset.OffsetRight) else if (offset == PositionOffset.OffsetRight)
{ {
fromPosition.anchoredPosition = new Vector2(fromPosition.anchoredPosition.x+Mathf.Abs(shiftOffset.x), fromPosition.anchoredPosition.y+Mathf.Abs(shiftOffset.y)); fromPosition.anchoredPosition = new Vector2(fromPosition.anchoredPosition.x + Mathf.Abs(shiftOffset.x), fromPosition.anchoredPosition.y + Mathf.Abs(shiftOffset.y));
} }
else else
{ {
@ -381,7 +379,8 @@ namespace Fungus
if (character.state.portraitImage != null) if (character.state.portraitImage != null)
{ {
GameObject tempGO = GameObject.Instantiate(character.state.portraitImage.gameObject); GameObject tempGO = GameObject.Instantiate(character.state.portraitImage.gameObject);
tempGO.transform.SetParent(character.state.portraitImage.transform.parent, false); tempGO.transform.SetParent(character.state.portraitImage.transform, false);
tempGO.transform.localPosition = Vector3.zero;
Image tempImage = tempGO.GetComponent<Image>(); Image tempImage = tempGO.GetComponent<Image>();
tempImage.sprite = character.state.portraitImage.sprite; tempImage.sprite = character.state.portraitImage.sprite;
tempImage.preserveAspect = true; tempImage.preserveAspect = true;
@ -427,6 +426,7 @@ namespace Fungus
// LeanTween doesn't handle 0 duration properly // LeanTween doesn't handle 0 duration properly
float duration = (moveDuration > 0f) ? moveDuration : float.Epsilon; float duration = (moveDuration > 0f) ? moveDuration : float.Epsilon;
// LeanTween.move uses the anchoredPosition, so all position images must have the same anchor position
LeanTween.move(character.state.portraitImage.rectTransform, toPosition.anchoredPosition3D, duration).setEase(stage.fadeEaseType); LeanTween.move(character.state.portraitImage.rectTransform, toPosition.anchoredPosition3D, duration).setEase(stage.fadeEaseType);
if (waitUntilFinished) if (waitUntilFinished)
{ {

Loading…
Cancel
Save