DetailsPanel now stretches horizontally in Portrait mode and vertically in Landscape mode

This commit is contained in:
2018-10-21 15:41:01 +02:00
parent d38c2130f5
commit c362aeac07
3 changed files with 63 additions and 16 deletions

View File

@@ -211,8 +211,8 @@ GameObject:
- component: {fileID: 224250538007241578}
- component: {fileID: 222458038700812966}
- component: {fileID: 114213177184435094}
- component: {fileID: 111894107479966502}
- component: {fileID: 114451700018395534}
- component: {fileID: 111859617734083424}
m_Layer: 5
m_Name: DetailsPanel
m_TagString: Untagged
@@ -451,7 +451,7 @@ GameObject:
- component: {fileID: 222281876000192902}
- component: {fileID: 114850943686386882}
m_Layer: 5
m_Name: ScrollContainer
m_Name: TextScrollContainer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -690,7 +690,7 @@ Animator:
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
--- !u!111 &111894107479966502
--- !u!111 &111859617734083424
Animation:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
@@ -1529,8 +1529,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 114013157313467306}
m_HandleRect: {fileID: 224126681634059420}
m_Direction: 2
m_Value: 0.5
m_Size: 0.49794
m_Value: 0.49999964
m_Size: 0.7254501
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@@ -1827,7 +1827,7 @@ MonoBehaviour:
spaceCount: 174
wordCount: 174
linkCount: 0
lineCount: 29
lineCount: 24
pageCount: 1
materialCount: 1
m_havePropertiesChanged: 1
@@ -2332,7 +2332,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 25, y: 25}
m_SizeDelta: {x: 460, y: 375}
m_SizeDelta: {x: 550, y: 450}
m_Pivot: {x: 0, y: 0}
--- !u!224 &224251385334151864
RectTransform:
@@ -2368,7 +2368,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.000030517578}
m_AnchoredPosition: {x: 0, y: -0.000015258789}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!224 &224272151730405692

View File

@@ -137,7 +137,7 @@ namespace RothenburgAR.Exhibition
outlineRenderer.SetPosition(7, topRight);
outlineRenderer.SetPosition(8, topLeft);
outlineRenderer.numCornerVertices = 1;
outlineRenderer.numCornerVertices = 2;
outlineRenderer.numCapVertices = 1;
outlineRenderer.alignment = LineAlignment.Local;

View File

@@ -18,9 +18,53 @@ namespace RothenburgAR.UI
public GameObject IconLoading;
public GameObject Icon3D;
private float initialHeight;
private float initialWidth;
private void Start()
{
gameObject.SetActive(false);
DisplayManager.Instance.AddOrientationChangeListener(SetSize);
}
private void OnEnable()
{
SetSize();
}
private void OnDestroy()
{
DisplayManager.Instance.RemoveOrientationChangeListener(SetSize);
RemoveModel();
}
private void SetSize()
{
var transform = GetComponent<RectTransform>();
var border = 0f;
initialWidth = initialWidth == 0
? transform.offsetMax.x
: initialWidth;
initialHeight = initialHeight == 0
? transform.offsetMax.y
: initialHeight;
if (Screen.orientation == ScreenOrientation.Portrait)
{
// stretch horizontally
transform.anchorMax = new Vector2(1, 0);
transform.offsetMin = new Vector2(border, border);
transform.offsetMax = new Vector2(-border, initialHeight);
}
else //if (Screen.orientation == ScreenOrientation.Landscape) //landscape or default?
{
// stretch vertically
transform.anchorMax = new Vector2(0, 1);
transform.offsetMin = new Vector2(border, border);
transform.offsetMax = new Vector2(initialWidth, -border);
}
}
public bool HasModel
@@ -126,11 +170,13 @@ namespace RothenburgAR.UI
public void UpdateOpeningAnimation(Vector3 position)
{
float duration = .4f;
StartCoroutine("SetSizeAfterSeconds", duration + .1f);
var scale = DisplayManager.Instance.GetComponent<RectTransform>().localScale.x;
Vector3 screenMiddle = new Vector3(Screen.width / scale, Screen.height / scale, 0) * 0.5f;
Vector3 startPos = Camera.main.WorldToScreenPoint(position) / scale - screenMiddle;
Vector3 endPos = -screenMiddle + new Vector3(25, 25, 0);
Vector3 endPos = -screenMiddle;
float startScale = 0.05f;
float endScale = 1;
@@ -139,7 +185,7 @@ namespace RothenburgAR.UI
var clip = new AnimationClip
{
legacy = true,
name = "DetailsOpen"
name = "DetailsOpen",
};
// inTangent and outTangent are the curve's angles to and from this keyframe in radians.
@@ -172,6 +218,12 @@ namespace RothenburgAR.UI
anim.Play(clip.name);
}
private IEnumerator SetSizeAfterSeconds(float duration)
{
yield return new WaitForSecondsRealtime(duration);
SetSize();
}
public void OnDetailsPanelDrag(BaseEventData data)
{
DetailsModel.RotateModelByDrag(data as PointerEventData);
@@ -186,10 +238,5 @@ namespace RothenburgAR.UI
{
DetailsModel.EndRotateModelByDrag(data as PointerEventData);
}
private void OnDestroy()
{
RemoveModel();
}
}
}