Merge branch 'master' into ScrollSnapRefactoring

release
Johannes Deml 2017-08-02 12:00:35 +02:00
commit 59b6c579f9
108 changed files with 11660 additions and 638 deletions

View File

@ -0,0 +1,59 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using UnityEditor;
namespace UnityEngine.UI.Extensions
{
[CustomEditor(typeof(CUIBezierCurve))]
[CanEditMultipleObjects]
public class CUIBezierCurveEditor : Editor
{
public override void OnInspectorGUI()
{
DrawDefaultInspector();
}
protected void OnSceneGUI()
{
CUIBezierCurve script = (CUIBezierCurve)this.target;
if (script.ControlPoints != null)
{
Vector3[] controlPoints = script.ControlPoints;
Transform handleTransform = script.transform;
Quaternion handleRotation = script.transform.rotation;
for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++)
{
EditorGUI.BeginChangeCheck();
Vector3 newPt = Handles.DoPositionHandle(handleTransform.TransformPoint(controlPoints[p]), handleRotation);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(script, "Move Point");
EditorUtility.SetDirty(script);
controlPoints[p] = handleTransform.InverseTransformPoint(newPt);
script.Refresh();
}
}
Handles.color = Color.gray;
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[0]), handleTransform.TransformPoint(controlPoints[1]));
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[1]), handleTransform.TransformPoint(controlPoints[2]));
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[2]), handleTransform.TransformPoint(controlPoints[3]));
int sampleSize = 10;
Handles.color = Color.white;
for (int s = 0; s < sampleSize; s++)
{
Handles.DrawLine(handleTransform.TransformPoint(script.GetPoint((float)s / sampleSize)), handleTransform.TransformPoint(script.GetPoint((float)(s + 1) / sampleSize)));
}
script.EDITOR_ControlPoints = controlPoints;
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 40e01e4fb1e006b46a0f127c8a9907b3
timeCreated: 1485671367
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

187
Editor/CUIGraphicEditor.cs Normal file
View File

@ -0,0 +1,187 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using UnityEditor;
namespace UnityEngine.UI.Extensions
{
[CustomEditor(typeof(CUIGraphic), true)]
public class CUIGraphicEditor : Editor {
protected static bool isCurveGpFold = false;
protected Vector3[] reuse_Vector3s = new Vector3[4];
public override void OnInspectorGUI()
{
CUIGraphic script = (CUIGraphic)this.target;
EditorGUILayout.HelpBox("CurlyUI (CUI) should work with most of the Unity UI. For Image, use CUIImage; for Text, use CUIText; and for others (e.g. RawImage), use CUIGraphic", MessageType.Info);
if (script.UIGraphic == null)
{
EditorGUILayout.HelpBox("CUI is an extension to Unity's UI. You must set Ui Graphic with a Unity Graphic component (e.g. Image, Text, RawImage)", MessageType.Error);
}
else
{
if (script.UIGraphic is Image && script.GetType() != typeof(CUIImage))
{
EditorGUILayout.HelpBox("Although CUI components are generalized. It is recommended that for Image, use CUIImage", MessageType.Warning);
}
else if (script.UIGraphic is Text && script.GetType() != typeof(CUIText))
{
EditorGUILayout.HelpBox("Although CUI components are generalized. It is recommended that for Text, use CUIText", MessageType.Warning);
}
EditorGUILayout.HelpBox("Now that CUI is ready, change the control points of the top and bottom bezier curves to curve/morph the UI. Improve resolution when the UI seems to look poorly when curved/morphed should help.", MessageType.Info);
}
DrawDefaultInspector();
// draw the editor that shows the position ratio of all control points from the two bezier curves
isCurveGpFold = EditorGUILayout.Foldout(isCurveGpFold, "Curves Position Ratios");
if (isCurveGpFold)
{
EditorGUI.indentLevel++;
EditorGUILayout.LabelField("Top Curve");
EditorGUI.indentLevel++;
Vector3[] controlPoints = script.RefCurvesControlRatioPoints[1].array;
EditorGUI.BeginChangeCheck();
for (int p = 0; p < controlPoints.Length; p++)
{
reuse_Vector3s[p] = EditorGUILayout.Vector3Field(string.Format("Control Points {0}", p + 1), controlPoints[p]);
}
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(script, "Change Ratio Points");
EditorUtility.SetDirty(script);
System.Array.Copy(reuse_Vector3s, script.RefCurvesControlRatioPoints[1].array, controlPoints.Length);
script.UpdateCurveControlPointPositions();
}
EditorGUI.indentLevel--;
EditorGUILayout.LabelField("Bottom Curve");
EditorGUI.indentLevel++;
controlPoints = script.RefCurvesControlRatioPoints[0].array;
EditorGUI.BeginChangeCheck();
for (int p = 0; p < controlPoints.Length; p++)
{
reuse_Vector3s[p] = EditorGUILayout.Vector3Field(string.Format("Control Points {0}", p + 1), controlPoints[p]);
}
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(script, "Change Ratio Points");
EditorUtility.SetDirty(script);
System.Array.Copy(reuse_Vector3s, controlPoints, controlPoints.Length);
script.UpdateCurveControlPointPositions();
}
EditorGUI.indentLevel--;
EditorGUI.indentLevel--;
}
EditorGUILayout.Space();
if (GUILayout.Button("Fit Bezier curves to rect transform"))
{
Undo.RecordObject(script, "Fit to Rect Transform");
Undo.RecordObject(script.RefCurves[0], "Fit to Rect Transform");
Undo.RecordObject(script.RefCurves[1], "Fit to Rect Transform");
EditorUtility.SetDirty(script);
script.FixTextToRectTrans();
script.Refresh();
}
EditorGUILayout.Space();
// disable group to prevent allowing the reference be used when there is no reference CUI
EditorGUI.BeginDisabledGroup(script.RefCUIGraphic == null);
if (GUILayout.Button("Reference CUI component for curves"))
{
Undo.RecordObject(script, "Reference Reference CUI");
Undo.RecordObject(script.RefCurves[0], "Reference Reference CUI");
Undo.RecordObject(script.RefCurves[1], "Reference Reference CUI");
EditorUtility.SetDirty(script);
script.ReferenceCUIForBCurves();
script.Refresh();
}
EditorGUILayout.HelpBox("Auto set the curves' control points by refencing another CUI. You need to set Ref CUI Graphic (e.g. CUIImage) first.", MessageType.Info);
EditorGUI.EndDisabledGroup();
}
protected virtual void OnSceneGUI()
{
// for CUITextEditor, allow using scene UI to change the control points of the bezier curves
CUIGraphic script = (CUIGraphic)this.target;
script.ReportSet();
for (int c = 0; c < script.RefCurves.Length; c++)
{
CUIBezierCurve curve = script.RefCurves[c];
if (curve.ControlPoints != null)
{
Vector3[] controlPoints = curve.ControlPoints;
Transform handleTransform = curve.transform;
Quaternion handleRotation = curve.transform.rotation;
for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++)
{
EditorGUI.BeginChangeCheck();
Handles.Label(handleTransform.TransformPoint(controlPoints[p]), string.Format("Control Point {0}", p + 1));
Vector3 newPt = Handles.DoPositionHandle(handleTransform.TransformPoint(controlPoints[p]), handleRotation);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(curve, "Move Point");
Undo.RecordObject(script, "Move Point");
EditorUtility.SetDirty(curve);
controlPoints[p] = handleTransform.InverseTransformPoint(newPt);
}
}
Handles.color = Color.gray;
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[0]), handleTransform.TransformPoint(controlPoints[1]));
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[1]), handleTransform.TransformPoint(controlPoints[2]));
Handles.DrawLine(handleTransform.TransformPoint(controlPoints[2]), handleTransform.TransformPoint(controlPoints[3]));
int sampleSize = 10;
Handles.color = Color.white;
for (int s = 0; s < sampleSize; s++)
{
Handles.DrawLine(handleTransform.TransformPoint(curve.GetPoint((float)s / sampleSize)), handleTransform.TransformPoint(curve.GetPoint((float)(s + 1) / sampleSize)));
}
curve.EDITOR_ControlPoints = controlPoints;
}
}
if (script.RefCurves != null)
{
Handles.DrawLine(script.RefCurves[0].transform.TransformPoint(script.RefCurves[0].ControlPoints[0]), script.RefCurves[1].transform.TransformPoint(script.RefCurves[1].ControlPoints[0]));
Handles.DrawLine(script.RefCurves[0].transform.TransformPoint(script.RefCurves[0].ControlPoints[3]), script.RefCurves[1].transform.TransformPoint(script.RefCurves[1].ControlPoints[3]));
}
script.Refresh();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b7b84624f1ba7bd49b6cfc63b25f4b7c
timeCreated: 1485671367
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

88
Editor/CUIImageEditor.cs Normal file
View File

@ -0,0 +1,88 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using UnityEditor;
namespace UnityEngine.UI.Extensions
{
[CustomEditor(typeof(CUIImage))]
public class CUIImageEditor : CUIGraphicEditor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
CUIImage script = (CUIImage)this.target;
EditorGUILayout.Space();
EditorGUI.BeginChangeCheck();
EditorGUI.BeginDisabledGroup(!(script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Tiled));
Vector2 newCornerRatio = EditorGUILayout.Vector2Field("Corner Ratio", script.cornerPosRatio);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(script, "Change Corner Ratio");
EditorUtility.SetDirty(script);
script.cornerPosRatio = newCornerRatio;
}
if (GUILayout.Button("Use native corner ratio"))
{
Undo.RecordObject(script, "Change Corner Ratio");
EditorUtility.SetDirty(script);
script.cornerPosRatio = script.OriCornerPosRatio;
}
if (script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Filled)
{
EditorGUILayout.HelpBox("With CUIImage, you can also adjust the size of the corners for filled or sliced Image. The grey sphere in the editor scene could also be moved to change the corner's size.", MessageType.Info);
}
else
{
EditorGUILayout.HelpBox("With CUIImage, you can also adjust the size of the corners for filled or sliced Image. You need to set Image to filled or sliced to use this feature.", MessageType.Info);
}
EditorGUI.EndDisabledGroup();
}
protected override void OnSceneGUI()
{
base.OnSceneGUI();
CUIImage script = (CUIImage)this.target;
if (script.UIImage.type == Image.Type.Sliced || script.UIImage.type == Image.Type.Tiled)
{
Vector3 cornerPos = Vector3.zero;//
if (script.IsCurved)
{
cornerPos = script.GetBCurveSandwichSpacePoint(script.cornerPosRatio.x, script.cornerPosRatio.y);
}
else
{
cornerPos.x = script.cornerPosRatio.x * script.RectTrans.rect.width - script.RectTrans.pivot.x * script.RectTrans.rect.width;
cornerPos.y = script.cornerPosRatio.y * script.RectTrans.rect.height - script.RectTrans.pivot.y * script.RectTrans.rect.height;
}
Handles.color = Color.gray;
EditorGUI.BeginChangeCheck();
Vector3 newCornerPos = Handles.FreeMoveHandle(script.transform.TransformPoint(cornerPos), script.transform.rotation, HandleUtility.GetHandleSize(script.transform.TransformPoint(cornerPos)) / 7, Vector3.one, Handles.SphereHandleCap);
Handles.Label(newCornerPos, string.Format("Corner Mover"));
newCornerPos = script.transform.InverseTransformPoint(newCornerPos);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(script, "Move Corner");
EditorUtility.SetDirty(script);
script.cornerPosRatio = new Vector2(newCornerPos.x, newCornerPos.y);
script.cornerPosRatio.x = (script.cornerPosRatio.x + script.RectTrans.pivot.x * script.RectTrans.rect.width) / script.RectTrans.rect.width;
script.cornerPosRatio.y = (script.cornerPosRatio.y + script.RectTrans.pivot.y * script.RectTrans.rect.height) / script.RectTrans.rect.height;
}
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8445204f2ee16e0408274b8400deef53
timeCreated: 1485929052
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

10
Editor/CUITextEditor.cs Normal file
View File

@ -0,0 +1,10 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using UnityEditor;
namespace UnityEngine.UI.Extensions
{
[CustomEditor(typeof(CUIText))]
public class CUITextEditor : CUIGraphicEditor { }
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 041976c43b8439747a030b45a4712b77
timeCreated: 1485929052
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1777,6 +1777,44 @@ namespace UnityEditor.UI
}
#endregion
#region Radial Slider
[MenuItem("GameObject/UI/Extensions/RadialSlider", false)]
static public void AddRadialSlider(MenuCommand menuCommand)
{
GameObject sliderRoot = CreateUIElementRoot("Radial Slider", menuCommand, s_ThickGUIElementSize);
GameObject SliderControl = CreateUIObject("Slider", sliderRoot);
Image image = sliderRoot.AddComponent<Image>();
image.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
image.type = Image.Type.Simple;
image.color = s_DefaultSelectableColor;
RectTransform sliderRootRectTransform = sliderRoot.GetComponent<RectTransform>();
sliderRootRectTransform.anchorMin = new Vector2(0.5f, 0.5f);
sliderRootRectTransform.anchorMax = new Vector2(0.5f, 0.5f);
sliderRootRectTransform.anchoredPosition = Vector2.zero;
sliderRootRectTransform.sizeDelta = new Vector2(250f, 250f);
Image slidrImage = SliderControl.AddComponent<Image>();
slidrImage.sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>(kStandardSpritePath);
slidrImage.type = Image.Type.Filled;
slidrImage.fillMethod = Image.FillMethod.Radial360;
slidrImage.fillOrigin = 3;
slidrImage.color = Color.red;
slidrImage.fillAmount = 0;
RadialSlider slider = SliderControl.AddComponent<RadialSlider>();
slider.StartColor = Color.green;
slider.EndColor = Color.red;
RectTransform sliderRectTransform = SliderControl.GetComponent<RectTransform>();
sliderRectTransform.anchorMin = Vector2.zero;
sliderRectTransform.anchorMax = Vector2.one;
sliderRectTransform.sizeDelta = Vector2.zero;
Selection.activeGameObject = sliderRoot;
}
#endregion
#endregion

View File

@ -1,28 +1,30 @@
using UnityEngine;
public class ComboBoxChanged : MonoBehaviour {
public void ComboBoxChangedEvent (string text) {
Debug.Log("ComboBox changed [" + text + "]");
}
public void AutoCompleteComboBoxChangedEvent(string text)
namespace UnityEngine.UI.Extensions.Examples
{
public class ComboBoxChanged : MonoBehaviour
{
public void ComboBoxChangedEvent(string text)
{
Debug.Log("AutoCompleteComboBox changed [" + text + "]");
}
Debug.Log("ComboBox changed [" + text + "]");
}
public void AutoCompleteComboBoxSelectionChangedEvent(string text, bool valid)
{
public void AutoCompleteComboBoxChangedEvent(string text)
{
Debug.Log("AutoCompleteComboBox selection changed [" + text + "] and its validity was [" + valid + "]");
}
Debug.Log("AutoCompleteComboBox changed [" + text + "]");
}
public void DropDownChangedEvent(int newValue)
{
public void AutoCompleteComboBoxSelectionChangedEvent(string text, bool valid)
{
Debug.Log("DropDown changed [" + newValue + "]");
Debug.Log("AutoCompleteComboBox selection changed [" + text + "] and its validity was [" + valid + "]");
}
public void DropDownChangedEvent(int newValue)
{
Debug.Log("DropDown changed [" + newValue + "]");
}
}
}

View File

@ -1,7 +1,7 @@
/// Credit SimonDarksideJ
/// Sourced from my head
namespace UnityEngine.UI.Extensions
namespace UnityEngine.UI.Extensions.Examples
{
[RequireComponent(typeof(Image))]
public class CooldownEffect_Image : MonoBehaviour

View File

@ -1,7 +1,7 @@
/// Credit SimonDarksideJ
/// Sourced from my head
namespace UnityEngine.UI.Extensions
namespace UnityEngine.UI.Extensions.Examples
{
[RequireComponent(typeof(SoftMaskScript))]
public class CooldownEffect_SAUIM : MonoBehaviour {

9
Examples/CurlyUI.meta Normal file
View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d426546e1b1bdb346a4f1b7ead452375
folderAsset: yes
timeCreated: 1501406849
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3fcaf2574bec7db4db33947995886a8c
timeCreated: 1501406849
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e4715bcc5adadca46ac601c64bd58681
folderAsset: yes
timeCreated: 1501610666
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0e019a51b207adf4dbc65576e8a03ed9
folderAsset: yes
timeCreated: 1501610675
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,706 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311947, g: 0.38074005, b: 0.35872722, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 8
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFiltering: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_LightingDataAsset: {fileID: 0}
m_ShadowMaskMode: 2
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &650160435
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 650160439}
- component: {fileID: 650160438}
- component: {fileID: 650160437}
- component: {fileID: 650160436}
- component: {fileID: 650160440}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &650160436
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &650160437
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &650160438
Canvas:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 777088607}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &650160439
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1492537696}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &650160440
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 69123a589054bf041ba5ead99364646f, type: 3}
m_Name:
m_EditorClassIdentifier:
scrollView: {fileID: 1492537700}
--- !u!1 &777088603
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 777088608}
- component: {fileID: 777088607}
- component: {fileID: 777088606}
- component: {fileID: 777088605}
- component: {fileID: 777088604}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &777088604
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!124 &777088605
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!92 &777088606
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!20 &777088607
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &777088608
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1012097242
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1012097243}
- component: {fileID: 1012097245}
- component: {fileID: 1012097244}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1012097243
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254}
m_LocalPosition: {x: 0, y: 0, z: 276}
m_LocalScale: {x: 0.3, y: 0.3, z: 1}
m_Children:
- {fileID: 1506879310}
m_Father: {fileID: 1590362722}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0}
m_AnchorMin: {x: -0.2, y: 0.5}
m_AnchorMax: {x: -0.2, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 450}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1012097244
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.3019608}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1012097245
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
--- !u!1 &1492537695
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1492537696}
- component: {fileID: 1492537700}
- component: {fileID: 1492537699}
- component: {fileID: 1492537702}
- component: {fileID: 1492537701}
m_Layer: 5
m_Name: ScrollView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1492537696
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1590362722}
m_Father: {fileID: 650160439}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1492537699
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc9ad31350b1b6348b57c626195a562d, type: 3}
m_Name:
m_EditorClassIdentifier:
viewport: {fileID: 1492537696}
directionOfRecognize: 1
movementType: 1
elasticity: 0.1
scrollSensitivity: 7
inertia: 1
decelerationRate: 0.03
snap:
Enable: 1
VelocityThreshold: 0.5
Duration: 0.3
dataCount: 0
--- !u!114 &1492537700
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c7e0222f92bdad84c9ee57a127efe088, type: 3}
m_Name:
m_EditorClassIdentifier:
cellInterval: 0.15
cellOffset: 0.5
loop: 0
cellBase: {fileID: 1590362721}
scrollPositionController: {fileID: 1492537699}
--- !u!114 &1492537701
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1492537702
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
--- !u!1 &1506879309
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1506879310}
- component: {fileID: 1506879312}
- component: {fileID: 1506879311}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1506879310
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_LocalRotation: {x: 0.008726558, y: 0, z: 0, w: 0.999962}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1012097243}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 1, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1506879311
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 30
m_FontStyle: 3
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &1506879312
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
--- !u!1 &1590362721
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1590362722}
- component: {fileID: 1590362725}
- component: {fileID: 1590362723}
- component: {fileID: 1590362724}
- component: {fileID: 1590362726}
m_Layer: 5
m_Name: Cell
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1590362722
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1012097243}
m_Father: {fileID: 1492537696}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!95 &1590362723
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 8bbdb068c73989c438aef167096a86cb, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
--- !u!114 &1590362724
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b77a04c729f174c478baf21a47c16620, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 1590362723}
message: {fileID: 1506879311}
--- !u!222 &1590362725
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
--- !u!225 &1590362726
CanvasGroup:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &1770868449
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1770868452}
- component: {fileID: 1770868451}
- component: {fileID: 1770868450}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1770868450
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1770868451
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 5
--- !u!4 &1770868452
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f5666b6c719a9b544ab322e1066aef5f
timeCreated: 1487186707
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0f8e29708d324ea48ba2af889fea2c5a
folderAsset: yes
timeCreated: 1487186581
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,600 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 01_Basic_Animation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 90, y: 0, z: 0}
inSlope: {x: -198.47397, y: 0, z: 0}
outSlope: {x: -198.47397, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 0.5
value: {x: 0, y: 0, z: 0}
inSlope: {x: -180, y: 0, z: 0}
outSlope: {x: -180, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 1
value: {x: -90, y: 0, z: 0}
inSlope: {x: -178.53796, y: 0, z: 0}
outSlope: {x: -178.53796, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Image
m_PositionCurves: []
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 0.3, y: 0.3, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 0.5
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 1
value: {x: 0.2, y: 0.2, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Image
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -0.2
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0.5
inSlope: 1.4000001
outSlope: 1.4000001
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMax.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMax.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -0.2
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0.5
inSlope: 1.4000001
outSlope: 1.4000001
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMin.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMin.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- path: 83635035
attribute: 4
script: {fileID: 0}
classID: 4
customType: 14
isPPtrCurve: 0
- path: 83635035
attribute: 3
script: {fileID: 0}
classID: 4
customType: 0
isPPtrCurve: 0
- path: 83635035
attribute: 2711263438
script: {fileID: 0}
classID: 224
customType: 0
isPPtrCurve: 0
- path: 83635035
attribute: 2089119715
script: {fileID: 0}
classID: 224
customType: 0
isPPtrCurve: 0
- path: 0
attribute: 1574349066
script: {fileID: 0}
classID: 225
customType: 0
isPPtrCurve: 0
- path: 83635035
attribute: 3600656472
script: {fileID: 0}
classID: 224
customType: 0
isPPtrCurve: 0
- path: 83635035
attribute: 193093493
script: {fileID: 0}
classID: 224
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -0.2
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0.5
inSlope: 1.4000001
outSlope: 1.4000001
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMax.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMax.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -0.2
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0.5
inSlope: 1.4000001
outSlope: 1.4000001
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMin.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchorMin.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.3
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0.3
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0.2
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 90
inSlope: -198.47397
outSlope: -198.47397
tangentMode: 0
- serializedVersion: 2
time: 0.5
value: 0
inSlope: -180
outSlope: -180
tangentMode: 136
- serializedVersion: 2
time: 1
value: -90
inSlope: -178.53796
outSlope: -178.53796
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path: Image
classID: 224
script: {fileID: 0}
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_IsEmpty: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9e6e4c5500df9dc439749ba892b2995c
timeCreated: 1487186596
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,95 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 01_Basic_CellScroll
serializedVersion: 5
m_AnimatorParameters:
- m_Name: scroll
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 1
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107904440216339570}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &1101181072344081740
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102900943980948860}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.9
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1102900943980948860
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: scroll
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: 9e6e4c5500df9dc439749ba892b2995c, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1107 &1107904440216339570
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102900943980948860}
m_Position: {x: 252, y: 24, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: 1101181072344081740}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1102900943980948860}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8bbdb068c73989c438aef167096a86cb
timeCreated: 1487186612
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example01CellDto
{
public string Message;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e14503efd7a60d54db0d148e00aa2169
timeCreated: 1487508481
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,19 @@
using System.Linq;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example01Scene : MonoBehaviour
{
[SerializeField]
Example01ScrollView scrollView;
void Start()
{
var cellData = Enumerable.Range(0, 20)
.Select(i => new Example01CellDto { Message = "Cell " + i })
.ToList();
scrollView.UpdateData(cellData);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 69123a589054bf041ba5ead99364646f
timeCreated: 1487186233
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example01ScrollView : FancyScrollView<Example01CellDto>
{
[SerializeField]
ScrollPositionController scrollPositionController;
new void Awake()
{
base.Awake();
scrollPositionController.OnUpdatePosition.AddListener(UpdatePosition);
}
public void UpdateData(List<Example01CellDto> data)
{
cellData = data;
scrollPositionController.SetDataCount(cellData.Count);
UpdateContents();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c7e0222f92bdad84c9ee57a127efe088
timeCreated: 1487262733
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,40 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example01ScrollViewCell : FancyScrollViewCell<Example01CellDto>
{
[SerializeField]
Animator animator;
[SerializeField]
Text message;
readonly int scrollTriggerHash = Animator.StringToHash("scroll");
void Start()
{
var rectTransform = transform as RectTransform;
rectTransform.anchorMax = Vector2.one;
rectTransform.anchorMin = Vector2.zero;
rectTransform.anchoredPosition3D = Vector3.zero;
UpdatePosition(0);
}
/// <summary>
/// セルの内容を更新します
/// </summary>
/// <param name="itemData"></param>
public override void UpdateContent(Example01CellDto itemData)
{
message.text = itemData.Message;
}
/// <summary>
/// セルの位置を更新します
/// </summary>
/// <param name="position"></param>
public override void UpdatePosition(float position)
{
animator.Play(scrollTriggerHash, -1, position);
animator.speed = 0;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b77a04c729f174c478baf21a47c16620
timeCreated: 1487184978
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 577dcbd98667cbb47ba8c97b564802d2
folderAsset: yes
timeCreated: 1501610675
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,750 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311947, g: 0.38074005, b: 0.35872722, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 8
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFiltering: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_LightingDataAsset: {fileID: 0}
m_ShadowMaskMode: 2
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &650160435
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 650160439}
- component: {fileID: 650160438}
- component: {fileID: 650160437}
- component: {fileID: 650160436}
- component: {fileID: 650160440}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &650160436
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &650160437
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &650160438
Canvas:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 777088607}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &650160439
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1492537696}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &650160440
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b945ba693af0d824989e76c183a47fb3, type: 3}
m_Name:
m_EditorClassIdentifier:
scrollView: {fileID: 1492537697}
--- !u!1 &777088603
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 777088608}
- component: {fileID: 777088607}
- component: {fileID: 777088606}
- component: {fileID: 777088605}
- component: {fileID: 777088604}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &777088604
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!124 &777088605
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!92 &777088606
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!20 &777088607
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &777088608
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1012097242
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1012097243}
- component: {fileID: 1012097245}
- component: {fileID: 1012097244}
- component: {fileID: 1012097246}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1012097243
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254}
m_LocalPosition: {x: 0, y: 0, z: 276}
m_LocalScale: {x: 0.3, y: 0.3, z: 1}
m_Children:
- {fileID: 1506879310}
m_Father: {fileID: 1590362722}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0}
m_AnchorMin: {x: -0.2, y: 0.5}
m_AnchorMax: {x: -0.2, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 450}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1012097244
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1012097245
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
--- !u!114 &1012097246
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1012097244}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!1 &1492537695
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1492537696}
- component: {fileID: 1492537699}
- component: {fileID: 1492537702}
- component: {fileID: 1492537701}
- component: {fileID: 1492537697}
m_Layer: 5
m_Name: ScrollView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1492537696
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1590362722}
m_Father: {fileID: 650160439}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1492537697
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5b1ee62a075132e49b6fc82cd114e89d, type: 3}
m_Name:
m_EditorClassIdentifier:
cellInterval: 0.15
cellOffset: 0.5
loop: 0
cellBase: {fileID: 1590362721}
scrollPositionController: {fileID: 1492537699}
--- !u!114 &1492537699
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc9ad31350b1b6348b57c626195a562d, type: 3}
m_Name:
m_EditorClassIdentifier:
viewport: {fileID: 1492537696}
directionOfRecognize: 1
movementType: 1
elasticity: 0.1
scrollSensitivity: 7
inertia: 1
decelerationRate: 0.03
snap:
Enable: 1
VelocityThreshold: 0.5
Duration: 0.3
dataCount: 0
--- !u!114 &1492537701
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1492537702
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
--- !u!1 &1506879309
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1506879310}
- component: {fileID: 1506879312}
- component: {fileID: 1506879311}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1506879310
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_LocalRotation: {x: 0.008726558, y: 0, z: 0, w: 0.999962}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1012097243}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 1, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1506879311
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 30
m_FontStyle: 3
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &1506879312
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
--- !u!1 &1590362721
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1590362722}
- component: {fileID: 1590362725}
- component: {fileID: 1590362723}
- component: {fileID: 1590362724}
- component: {fileID: 1590362726}
m_Layer: 5
m_Name: Cell
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1590362722
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1012097243}
m_Father: {fileID: 1492537696}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!95 &1590362723
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 8bbdb068c73989c438aef167096a86cb, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
--- !u!114 &1590362724
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9409f360a0deeb949a3635126edf8000, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 1590362723}
message: {fileID: 1506879311}
image: {fileID: 1012097244}
button: {fileID: 1012097246}
--- !u!222 &1590362725
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
--- !u!225 &1590362726
CanvasGroup:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &1770868449
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1770868452}
- component: {fileID: 1770868451}
- component: {fileID: 1770868450}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1770868450
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1770868451
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 5
--- !u!4 &1770868452
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 22d1be941599faf45b04ab4c6a2def09
timeCreated: 1487505810
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example02CellDto
{
public string Message;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: cf9eb20bd16f1aa448580b085861a75b
timeCreated: 1487505929
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,19 @@
using System.Linq;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example02Scene : MonoBehaviour
{
[SerializeField]
Example02ScrollView scrollView;
void Start()
{
var cellData = Enumerable.Range(0, 20)
.Select(i => new Example02CellDto { Message = "Cell " + i })
.ToList();
scrollView.UpdateData(cellData);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b945ba693af0d824989e76c183a47fb3
timeCreated: 1487506430
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example02ScrollView : FancyScrollView<Example02CellDto, Example02ScrollViewContext>
{
[SerializeField]
ScrollPositionController scrollPositionController;
new void Awake()
{
scrollPositionController.OnUpdatePosition.AddListener(UpdatePosition);
SetContext(new Example02ScrollViewContext { OnPressedCell = OnPressedCell });
base.Awake();
}
public void UpdateData(List<Example02CellDto> data)
{
cellData = data;
scrollPositionController.SetDataCount(cellData.Count);
UpdateContents();
}
void OnPressedCell(Example02ScrollViewCell cell)
{
scrollPositionController.ScrollTo(cell.DataIndex, 0.4f);
context.SelectedIndex = cell.DataIndex;
UpdateContents();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5b1ee62a075132e49b6fc82cd114e89d
timeCreated: 1487505830
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,73 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example02ScrollViewCell
: FancyScrollViewCell<Example02CellDto, Example02ScrollViewContext>
{
[SerializeField]
Animator animator;
[SerializeField]
Text message;
[SerializeField]
Image image;
[SerializeField]
Button button;
readonly int scrollTriggerHash = Animator.StringToHash("scroll");
Example02ScrollViewContext context;
void Start()
{
var rectTransform = transform as RectTransform;
rectTransform.anchorMax = Vector2.one;
rectTransform.anchorMin = Vector2.zero;
rectTransform.anchoredPosition3D = Vector3.zero;
UpdatePosition(0);
button.onClick.AddListener(OnPressedCell);
}
/// <summary>
/// コンテキストを設定します
/// </summary>
/// <param name="context"></param>
public override void SetContext(Example02ScrollViewContext context)
{
this.context = context;
}
/// <summary>
/// セルの内容を更新します
/// </summary>
/// <param name="itemData"></param>
public override void UpdateContent(Example02CellDto itemData)
{
message.text = itemData.Message;
if (context != null)
{
var isSelected = context.SelectedIndex == DataIndex;
image.color = isSelected
? new Color32(0, 255, 255, 100)
: new Color32(255, 255, 255, 77);
}
}
/// <summary>
/// セルの位置を更新します
/// </summary>
/// <param name="position"></param>
public override void UpdatePosition(float position)
{
animator.Play(scrollTriggerHash, -1, position);
animator.speed = 0;
}
public void OnPressedCell()
{
if (context != null)
{
context.OnPressedCell(this);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9409f360a0deeb949a3635126edf8000
timeCreated: 1487505842
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example02ScrollViewContext
{
public System.Action<Example02ScrollViewCell> OnPressedCell;
public int SelectedIndex;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 82429dd602c927c4faab5b80397e65a3
timeCreated: 1487505870
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d648997d940777f41b77d17ab29f5cea
folderAsset: yes
timeCreated: 1501610675
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,755 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 8
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311947, g: 0.38074005, b: 0.35872722, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 8
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFiltering: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_LightingDataAsset: {fileID: 0}
m_ShadowMaskMode: 2
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &650160435
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 650160439}
- component: {fileID: 650160438}
- component: {fileID: 650160437}
- component: {fileID: 650160436}
- component: {fileID: 650160440}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &650160436
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &650160437
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &650160438
Canvas:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 777088607}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 25
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &650160439
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1492537696}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &650160440
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 650160435}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45018617dd0e7cf4d8b8800224ac5d40, type: 3}
m_Name:
m_EditorClassIdentifier:
scrollView: {fileID: 1492537697}
--- !u!1 &777088603
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 777088608}
- component: {fileID: 777088607}
- component: {fileID: 777088606}
- component: {fileID: 777088605}
- component: {fileID: 777088604}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &777088604
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!124 &777088605
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!92 &777088606
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
--- !u!20 &777088607
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &777088608
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 777088603}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1012097242
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1012097243}
- component: {fileID: 1012097245}
- component: {fileID: 1012097244}
- component: {fileID: 1012097246}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1012097243
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_LocalRotation: {x: 0.6427876, y: 0, z: 0, w: 0.7660445}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 0.8, z: 1}
m_Children:
- {fileID: 1506879310}
m_Father: {fileID: 1590362722}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -80, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.7}
m_AnchorMax: {x: 0.5, y: 0.7}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 400}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1012097244
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1012097245
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
--- !u!114 &1012097246
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1012097242}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 0
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1012097244}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!1 &1492537695
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1492537696}
- component: {fileID: 1492537699}
- component: {fileID: 1492537702}
- component: {fileID: 1492537701}
- component: {fileID: 1492537697}
m_Layer: 5
m_Name: ScrollView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1492537696
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1590362722}
m_Father: {fileID: 650160439}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1492537697
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7454b91158ad32e49ab5d3cdac132574, type: 3}
m_Name:
m_EditorClassIdentifier:
cellInterval: 0.06666667
cellOffset: 0.5
loop: 1
cellBase: {fileID: 1590362721}
scrollPositionController: {fileID: 1492537699}
--- !u!114 &1492537699
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc9ad31350b1b6348b57c626195a562d, type: 3}
m_Name:
m_EditorClassIdentifier:
viewport: {fileID: 1492537696}
directionOfRecognize: 1
movementType: 0
elasticity: 0.1
scrollSensitivity: 7
inertia: 1
decelerationRate: 0.03
snap:
Enable: 1
VelocityThreshold: 0.5
Duration: 0.3
dataCount: 0
OnUpdatePosition:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Extensions.ScrollPositionController+UpdatePositionEvent,
Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
--- !u!114 &1492537701
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.392}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1492537702
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1492537695}
--- !u!1 &1506879309
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1506879310}
- component: {fileID: 1506879312}
- component: {fileID: 1506879311}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1506879310
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_LocalRotation: {x: 0.008726558, y: 0, z: 0, w: 0.999962}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1012097243}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 1, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1506879311
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 30
m_FontStyle: 3
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text:
--- !u!222 &1506879312
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1506879309}
--- !u!1 &1590362721
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1590362722}
- component: {fileID: 1590362725}
- component: {fileID: 1590362723}
- component: {fileID: 1590362724}
- component: {fileID: 1590362728}
m_Layer: 5
m_Name: Cell
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1590362722
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_LocalRotation: {x: -0, y: -0.026176924, z: -0.99965733, w: 0}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1012097243}
m_Father: {fileID: 1492537696}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: -3, y: 0, z: -180}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 980, y: 552}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!95 &1590362723
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: c1a16bf117472bf47b662d4bc2647177, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
--- !u!114 &1590362724
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 173c545de5ff4e048bcc3642f8392e4e, type: 3}
m_Name:
m_EditorClassIdentifier:
animator: {fileID: 1590362723}
message: {fileID: 1506879311}
image: {fileID: 1012097244}
button: {fileID: 1012097246}
--- !u!222 &1590362725
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
--- !u!225 &1590362728
CanvasGroup:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1590362721}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!1 &1770868449
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1770868452}
- component: {fileID: 1770868451}
- component: {fileID: 1770868450}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1770868450
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1770868451
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 5
--- !u!4 &1770868452
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1770868449}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 1f93c60c8aa572040a751a20a626451f
timeCreated: 1487505810
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 94b9a5282934b8c43b2aeb7a25815a99
folderAsset: yes
timeCreated: 1488028867
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,468 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 03_InfiniteScroll_Animation
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 0, y: 0, z: -250}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 0.5
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 0, z: 450}
outSlope: {x: 0, y: 0, z: 450}
tangentMode: 0
- serializedVersion: 2
time: 1
value: {x: 0, y: 0, z: 200}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: {x: 80, y: -80, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 0.5
value: {x: 0, y: 0, z: 0}
inSlope: {x: 0, y: 160, z: 0}
outSlope: {x: 0, y: 160, z: 0}
tangentMode: 0
- serializedVersion: 2
time: 1
value: {x: 80, y: 80, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: Image
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -250
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 250
inSlope: 2000
outSlope: 2000
tangentMode: 136
- serializedVersion: 2
time: 1
value: 2750
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 224
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- path: 0
attribute: 4
script: {fileID: 0}
classID: 4
customType: 14
isPPtrCurve: 0
- path: 83635035
attribute: 4
script: {fileID: 0}
classID: 4
customType: 14
isPPtrCurve: 0
- path: 0
attribute: 1574349066
script: {fileID: 0}
classID: 225
customType: 0
isPPtrCurve: 0
- path: 0
attribute: 2033536083
script: {fileID: 0}
classID: 224
customType: 28
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -250
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 450
outSlope: 450
tangentMode: 136
- serializedVersion: 2
time: 1
value: 200
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 80
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 80
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -80
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 160
outSlope: 160
tangentMode: 136
- serializedVersion: 2
time: 1
value: 80
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.z
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 2
time: 0
value: -250
inSlope: 0
outSlope: 0
tangentMode: 136
- serializedVersion: 2
time: 0.5
value: 250
inSlope: 2000
outSlope: 2000
tangentMode: 136
- serializedVersion: 2
time: 1
value: 2750
inSlope: 0
outSlope: 0
tangentMode: 136
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 224
script: {fileID: 0}
m_EulerEditorCurves:
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path: Image
classID: 224
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path: Image
classID: 224
script: {fileID: 0}
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_GenerateMotionCurves: 0
m_IsEmpty: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: add491cbb06317b48a88a94b0081db1d
timeCreated: 1487186596
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,121 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: 03_InfiniteScroll_CellScroll
serializedVersion: 5
m_AnimatorParameters:
- m_Name: scroll
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 1
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107904440216339570}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &1101181072344081740
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102900943980948860}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.9
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1102483224443493760
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: New State
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1102 &1102900943980948860
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: scroll
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_Motion: {fileID: 7400000, guid: add491cbb06317b48a88a94b0081db1d, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
--- !u!1107 &1107904440216339570
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102483224443493760}
m_Position: {x: 264, y: 144, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102900943980948860}
m_Position: {x: 252, y: 24, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: 1101181072344081740}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1102483224443493760}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c1a16bf117472bf47b662d4bc2647177
timeCreated: 1487186612
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example03CellDto
{
public string Message;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f620c6407f9b6c74390ab02bfa99d777
timeCreated: 1487505929
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,19 @@
using System.Linq;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example03Scene : MonoBehaviour
{
[SerializeField]
Example03ScrollView scrollView;
void Start()
{
var cellData = Enumerable.Range(0, 20)
.Select(i => new Example03CellDto { Message = "Cell " + i })
.ToList();
scrollView.UpdateData(cellData);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 45018617dd0e7cf4d8b8800224ac5d40
timeCreated: 1487506430
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
using System.Collections.Generic;
namespace UnityEngine.UI.Extensions.Examples
{
public class Example03ScrollView : FancyScrollView<Example03CellDto, Example03ScrollViewContext>
{
[SerializeField]
ScrollPositionController scrollPositionController;
new void Awake()
{
scrollPositionController.OnUpdatePosition.AddListener(UpdatePosition);
SetContext(new Example03ScrollViewContext { OnPressedCell = OnPressedCell });
base.Awake();
}
public void UpdateData(List<Example03CellDto> data)
{
cellData = data;
scrollPositionController.SetDataCount(cellData.Count);
UpdateContents();
}
void OnPressedCell(Example03ScrollViewCell cell)
{
scrollPositionController.ScrollTo(cell.DataIndex, 0.4f);
context.SelectedIndex = cell.DataIndex;
UpdateContents();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7454b91158ad32e49ab5d3cdac132574
timeCreated: 1487505830
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,73 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example03ScrollViewCell
: FancyScrollViewCell<Example03CellDto, Example03ScrollViewContext>
{
[SerializeField]
Animator animator;
[SerializeField]
Text message;
[SerializeField]
Image image;
[SerializeField]
Button button;
readonly int scrollTriggerHash = Animator.StringToHash("scroll");
Example03ScrollViewContext context;
void Start()
{
var rectTransform = transform as RectTransform;
rectTransform.anchorMax = Vector2.one;
rectTransform.anchorMin = Vector2.zero;
rectTransform.anchoredPosition3D = Vector3.zero;
UpdatePosition(0);
button.onClick.AddListener(OnPressedCell);
}
/// <summary>
/// コンテキストを設定します
/// </summary>
/// <param name="context"></param>
public override void SetContext(Example03ScrollViewContext context)
{
this.context = context;
}
/// <summary>
/// セルの内容を更新します
/// </summary>
/// <param name="itemData"></param>
public override void UpdateContent(Example03CellDto itemData)
{
message.text = itemData.Message;
if (context != null)
{
var isSelected = context.SelectedIndex == DataIndex;
image.color = isSelected
? new Color32(0, 255, 255, 100)
: new Color32(255, 255, 255, 77);
}
}
/// <summary>
/// セルの位置を更新します
/// </summary>
/// <param name="position"></param>
public override void UpdatePosition(float position)
{
animator.Play(scrollTriggerHash, -1, position);
animator.speed = 0;
}
public void OnPressedCell()
{
if (context != null)
{
context.OnPressedCell(this);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 173c545de5ff4e048bcc3642f8392e4e
timeCreated: 1487505842
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class Example03ScrollViewContext
{
public System.Action<Example03ScrollViewCell> OnPressedCell;
public int SelectedIndex;
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 90b3672ca30312045afd42deb38c2f6e
timeCreated: 1487505870
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
using UnityEngine.EventSystems;
namespace UnityEngine.UI.Extensions.Examples
{
public class PaginationScript : MonoBehaviour, IPointerClickHandler
{
public HorizontalScrollSnap hss;
public int Page;
public void OnPointerClick(PointerEventData eventData)
{
if (hss != null)
{
hss.GoToScreen(Page);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5ea46c3573b42624aa573f2d6b091ed1
timeCreated: 1501404313
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -141,12 +141,12 @@ RectTransform:
- {fileID: 2093228243}
- {fileID: 1673151533}
m_Father: {fileID: 448991457}
m_RootOrder: 5
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 259, y: -106}
m_SizeDelta: {x: -577, y: -279}
m_AnchoredPosition: {x: 225.10002, y: -99.100006}
m_SizeDelta: {x: -496.4, y: -233.4}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2641525
MonoBehaviour:
@ -233,7 +233,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
@ -291,6 +291,8 @@ RectTransform:
m_Children:
- {fileID: 1826600021}
- {fileID: 472879517}
- {fileID: 1112321045}
- {fileID: 803284190}
m_Father: {fileID: 448991457}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -310,7 +312,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 609dcc22aadcc16418bfac22716ee9a6, type: 3}
m_Name:
m_EditorClassIdentifier:
StartingScreen: 0
StartingScreen: 2
PageStep: 2.7
Pagination: {fileID: 266467291}
PrevButton: {fileID: 1112321044}
@ -504,7 +506,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_5
--- !u!222 &96249206
CanvasRenderer:
m_ObjectHideFlags: 0
@ -545,12 +547,12 @@ RectTransform:
- {fileID: 896078184}
- {fileID: 1096492862}
m_Father: {fileID: 448991457}
m_RootOrder: 4
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -18, y: -108}
m_SizeDelta: {x: -651, y: -244}
m_AnchoredPosition: {x: 59.299988, y: -108}
m_SizeDelta: {x: -496.4, y: -244}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &266467293
MonoBehaviour:
@ -595,6 +597,7 @@ GameObject:
m_Component:
- component: {fileID: 344218386}
- component: {fileID: 344218387}
- component: {fileID: 344218388}
m_Layer: 5
m_Name: Toggle (3)
m_TagString: Untagged
@ -667,6 +670,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &344218388
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 344218385}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 3
--- !u!1 &369849432
GameObject:
m_ObjectHideFlags: 0
@ -830,8 +846,6 @@ RectTransform:
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 67156822}
- {fileID: 1112321045}
- {fileID: 803284190}
- {fileID: 1200934015}
- {fileID: 266467292}
- {fileID: 2641524}
@ -1063,7 +1077,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
@ -1506,7 +1520,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_6
--- !u!222 &580834257
CanvasRenderer:
m_ObjectHideFlags: 0
@ -1647,6 +1661,80 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 628800540}
--- !u!1 &665010633
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 665010634}
- component: {fileID: 665010636}
- component: {fileID: 665010635}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &665010634
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 665010633}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1530543973}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &665010635
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 665010633}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Scroll Down
--- !u!222 &665010636
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 665010633}
--- !u!1 &675753574
GameObject:
m_ObjectHideFlags: 0
@ -1831,7 +1919,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
@ -1882,17 +1970,17 @@ RectTransform:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 803284189}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1482741892}
m_Father: {fileID: 448991457}
m_RootOrder: 2
m_Father: {fileID: 67156822}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -113.899994, y: -183.2}
m_AnchoredPosition: {x: -96.399994, y: -169.20001}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &803284191
@ -2179,7 +2267,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_2
--- !u!222 &871292880
CanvasRenderer:
m_ObjectHideFlags: 0
@ -2195,6 +2283,7 @@ GameObject:
m_Component:
- component: {fileID: 896078184}
- component: {fileID: 896078185}
- component: {fileID: 896078186}
m_Layer: 5
m_Name: Toggle (4)
m_TagString: Untagged
@ -2267,6 +2356,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &896078186
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 896078183}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 4
--- !u!1 &911861601
GameObject:
m_ObjectHideFlags: 0
@ -2366,6 +2468,8 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1318750537}
- {fileID: 1264033139}
- {fileID: 1530543973}
m_Father: {fileID: 1200934015}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -2387,9 +2491,9 @@ MonoBehaviour:
m_EditorClassIdentifier:
StartingScreen: 5
PageStep: 1.27
Pagination: {fileID: 266467291}
PrevButton: {fileID: 1112321044}
NextButton: {fileID: 803284189}
Pagination: {fileID: 0}
PrevButton: {fileID: 1530543972}
NextButton: {fileID: 1264033135}
transitionSpeed: 7.5
UseFastSwipe: 0
FastSwipeThreshold: 100
@ -2521,6 +2625,80 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1005665639}
--- !u!1 &1011318431
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1011318432}
- component: {fileID: 1011318434}
- component: {fileID: 1011318433}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1011318432
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1011318431}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1264033139}
m_RootOrder: 0
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}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1011318433
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1011318431}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "Scroll Up\t"
--- !u!222 &1011318434
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1011318431}
--- !u!1 &1045913701
GameObject:
m_ObjectHideFlags: 0
@ -2604,6 +2782,7 @@ GameObject:
m_Component:
- component: {fileID: 1096492862}
- component: {fileID: 1096492863}
- component: {fileID: 1096492864}
m_Layer: 5
m_Name: Toggle (5)
m_TagString: Untagged
@ -2676,6 +2855,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &1096492864
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1096492861}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 5
--- !u!1 &1112321044
GameObject:
m_ObjectHideFlags: 0
@ -2700,17 +2892,17 @@ RectTransform:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1112321044}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1045913702}
m_Father: {fileID: 448991457}
m_RootOrder: 1
m_Father: {fileID: 67156822}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -326.9, y: -183.2}
m_AnchoredPosition: {x: -309.4, y: -169.20001}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1112321046
@ -2854,7 +3046,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_3
--- !u!222 &1113803476
CanvasRenderer:
m_ObjectHideFlags: 0
@ -2959,6 +3151,7 @@ GameObject:
m_Component:
- component: {fileID: 1196803093}
- component: {fileID: 1196803094}
- component: {fileID: 1196803095}
m_Layer: 5
m_Name: Toggle
m_TagString: Untagged
@ -3031,6 +3224,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &1196803095
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1196803092}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 0
--- !u!1 &1200934014
GameObject:
m_ObjectHideFlags: 0
@ -3059,12 +3265,12 @@ RectTransform:
m_Children:
- {fileID: 1005665640}
m_Father: {fileID: 448991457}
m_RootOrder: 3
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -302, y: -0.125}
m_SizeDelta: {x: -648, y: -27.25}
m_AnchoredPosition: {x: -215, y: -6}
m_SizeDelta: {x: -475, y: -39}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1200934016
MonoBehaviour:
@ -3077,6 +3283,117 @@ MonoBehaviour:
m_Script: {fileID: -146154839, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1264033135
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1264033139}
- component: {fileID: 1264033138}
- component: {fileID: 1264033137}
- component: {fileID: 1264033136}
m_Layer: 5
m_Name: Up Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1264033136
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1264033135}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1264033137}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &1264033137
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1264033135}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1264033138
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1264033135}
--- !u!224 &1264033139
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1264033135}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1011318432}
m_Father: {fileID: 1005665640}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -99, y: 114}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1264921919
GameObject:
m_ObjectHideFlags: 0
@ -3968,6 +4285,117 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1522540075}
--- !u!1 &1530543972
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1530543973}
- component: {fileID: 1530543976}
- component: {fileID: 1530543975}
- component: {fileID: 1530543974}
m_Layer: 5
m_Name: Down Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1530543973
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1530543972}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 665010634}
m_Father: {fileID: 1005665640}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -99, y: -262}
m_SizeDelta: {x: 150, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1530543974
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1530543972}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1530543975}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &1530543975
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1530543972}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1530543976
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1530543972}
--- !u!1 &1535867278
GameObject:
m_ObjectHideFlags: 0
@ -4035,7 +4463,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_0
--- !u!222 &1535867281
CanvasRenderer:
m_ObjectHideFlags: 0
@ -4380,7 +4808,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_4
--- !u!222 &1735277982
CanvasRenderer:
m_ObjectHideFlags: 0
@ -4465,6 +4893,7 @@ GameObject:
m_Component:
- component: {fileID: 1771801965}
- component: {fileID: 1771801966}
- component: {fileID: 1771801967}
m_Layer: 5
m_Name: Toggle (1)
m_TagString: Untagged
@ -4537,6 +4966,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &1771801967
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1771801964}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 1
--- !u!1 &1790564029
GameObject:
m_ObjectHideFlags: 0
@ -4834,7 +5276,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Page_01
m_Text: Page_1
--- !u!222 &1857291964
CanvasRenderer:
m_ObjectHideFlags: 0
@ -4993,6 +5435,7 @@ GameObject:
m_Component:
- component: {fileID: 2019749174}
- component: {fileID: 2019749175}
- component: {fileID: 2019749176}
m_Layer: 5
m_Name: Toggle (2)
m_TagString: Untagged
@ -5065,6 +5508,19 @@ MonoBehaviour:
m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
m_IsOn: 1
--- !u!114 &2019749176
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2019749173}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea46c3573b42624aa573f2d6b091ed1, type: 3}
m_Name:
m_EditorClassIdentifier:
hss: {fileID: 67156823}
Page: 2
--- !u!1 &2069867491
GameObject:
m_ObjectHideFlags: 0
@ -5180,7 +5636,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
@ -5376,7 +5832,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
@ -5450,7 +5906,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:

View File

@ -1,73 +1,80 @@
using UnityEngine;
public class UpdateScrollSnap : MonoBehaviour {
public UnityEngine.UI.Extensions.HorizontalScrollSnap HSS;
public UnityEngine.UI.Extensions.VerticalScrollSnap VSS;
public GameObject HorizontalPagePrefab;
public GameObject VerticalPagePrefab;
public UnityEngine.UI.InputField JumpPage;
public void AddButton()
namespace UnityEngine.UI.Extensions.Examples
{
public class UpdateScrollSnap : MonoBehaviour
{
if (HSS)
public UnityEngine.UI.Extensions.HorizontalScrollSnap HSS;
public UnityEngine.UI.Extensions.VerticalScrollSnap VSS;
public GameObject HorizontalPagePrefab;
public GameObject VerticalPagePrefab;
public UnityEngine.UI.InputField JumpPage;
public void AddButton()
{
var newHSSPage = GameObject.Instantiate(HorizontalPagePrefab);
HSS.AddChild(newHSSPage);
if (HSS)
{
var newHSSPage = GameObject.Instantiate(HorizontalPagePrefab);
HSS.AddChild(newHSSPage);
}
if (VSS)
{
var newVSSPage = GameObject.Instantiate(VerticalPagePrefab);
VSS.AddChild(newVSSPage);
}
}
if (VSS)
{
var newVSSPage = GameObject.Instantiate(VerticalPagePrefab);
VSS.AddChild(newVSSPage);
}
}
public void RemoveButton()
{
GameObject removed, removed2;
if (HSS)
public void RemoveButton()
{
HSS.RemoveChild(HSS.CurrentPage, out removed);
removed.SetActive(false);
GameObject removed, removed2;
if (HSS)
{
HSS.RemoveChild(HSS.CurrentPage, out removed);
removed.SetActive(false);
}
if (VSS)
{
VSS.RemoveChild(VSS.CurrentPage, out removed2);
removed2.SetActive(false);
}
}
if (VSS)
{
VSS.RemoveChild(VSS.CurrentPage, out removed2);
removed2.SetActive(false);
}
}
public void JumpToPage()
{
int jumpPage = int.Parse(JumpPage.text);
if (HSS)
public void JumpToPage()
{
HSS.GoToScreen(jumpPage);
int jumpPage = int.Parse(JumpPage.text);
if (HSS)
{
HSS.GoToScreen(jumpPage);
}
if (VSS)
{
VSS.GoToScreen(jumpPage);
}
}
if (VSS)
public void SelectionStartChange()
{
VSS.GoToScreen(jumpPage);
Debug.Log("Scroll Snap change started");
}
public void SelectionEndChange()
{
Debug.Log("Scroll Snap change finished");
}
public void PageChange(int page)
{
Debug.Log(string.Format("Scroll Snap page changed to {0}", page));
}
}
public void SelectionStartChange()
{
Debug.Log("Scroll Snap change started");
}
public void SelectionEndChange()
{
Debug.Log("Scroll Snap change finished");
}
public void PageChange(int page)
{
Debug.Log(string.Format("Scroll Snap page changed to {0}",page));
}
public void RemoveAll()
{
GameObject[] children;
HSS.RemoveAllChildren(out children);
VSS.RemoveAllChildren(out children);
}
public void RemoveAll()
{
GameObject[] children;
HSS.RemoveAllChildren(out children);
VSS.RemoveAllChildren(out children);
public void JumpToSelectedToggle(int page)
{
HSS.GoToScreen(page);
}
}
}

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 06c6e9a20a01e2348acb20c103a628f2
folderAsset: yes
timeCreated: 1501105181
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,29 @@
namespace UnityEngine.UI.Extensions.Examples
{
public class UpdateRadialValue : MonoBehaviour
{
public InputField input;
public RadialSlider slider;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
public void UpdateSliderValue()
{
float value;
float.TryParse(input.text, out value);
slider.Value = value;
}
public void UpdateSliderAndle()
{
int value;
int.TryParse(input.text, out value);
slider.Angle = value;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: b5921b909b28e7f4f9a57906c667c9ce
timeCreated: 1501345599
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 84f742a1c72d4f5479bc951e9fd76fae
timeCreated: 1501350786
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,55 @@
fileFormatVersion: 2
guid: ad716093ca8bdf84189f6a67bfb8e30e
timeCreated: 1431884735
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: .25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: 16
mipBias: -1
wrapMode: 1
nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: .5, y: .5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 1
textureType: 8
buildTargetSettings: []
spriteSheet:
sprites: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,13 +1,13 @@
using UnityEngine;
[System.Serializable]
public class TestClass {
public string myString;
public GameObject go;
public string go_id;
public Vector3 somePosition;
public Color color;
public int[] myArray = new int[] {2,43,12};
namespace UnityEngine.UI.Extensions.Examples
{
[System.Serializable]
public class TestClass
{
public string myString;
public GameObject go;
public string go_id;
public Vector3 somePosition;
public Color color;
public int[] myArray = new int[] { 2, 43, 12 };
}
}

View File

@ -1,81 +1,98 @@
using UnityEngine;
using UnityEngine.UI.Extensions;
namespace UnityEngine.UI.Extensions.Examples
{
public class TestScript : MonoBehaviour
{
public string testString = "Hello";
public GameObject someGameObject;
public string someGameObject_id;
public TestClass testClass = new TestClass();
public TestClass[] testClassArray = new TestClass[2];
[DontSaveField] public Transform TransformThatWontBeSaved;//The [DontSaveField] attribute we wrote ourselves prevents the field from being included in the packed component data
public class TestScript : MonoBehaviour {
public void OnSerialize()
{
//This is an example of a OnSerialize method, called before a gameobject is packed into serializable form.
//In this case, the GameObject variable "someGameObject" and those in the testClass and testclass Array instances of TestClass should be reconstructed after loading.
//Since GameObject (and Transform) references assigned during runtime can't be serialized directly,
//we keep a seperate string variable for each GO variable that holds the ID of the GO instead.
//This allows us to just save the ID instead.
public string testString = "Hello";
public GameObject someGameObject;
public string someGameObject_id;
public TestClass testClass = new TestClass();
public TestClass[] testClassArray = new TestClass[2];
[DontSaveField] public Transform TransformThatWontBeSaved;//The [DontSaveField] attribute we wrote ourselves prevents the field from being included in the packed component data
//This example is one way of dealing with GameObject (and Transform) references. If a lot of those occur in your project,
//it might be more efficient to go directly into the static SaveLoad.PackComponent method. and doing it there.
public void OnSerialize() {
//This is an example of a OnSerialize method, called before a gameobject is packed into serializable form.
//In this case, the GameObject variable "someGameObject" and those in the testClass and testclass Array instances of TestClass should be reconstructed after loading.
//Since GameObject (and Transform) references assigned during runtime can't be serialized directly,
//we keep a seperate string variable for each GO variable that holds the ID of the GO instead.
//This allows us to just save the ID instead.
if (someGameObject != null && someGameObject.GetComponent<ObjectIdentifier>())
{
someGameObject_id = someGameObject.GetComponent<ObjectIdentifier>().id;
}
else
{
someGameObject_id = null;
}
//This example is one way of dealing with GameObject (and Transform) references. If a lot of those occur in your project,
//it might be more efficient to go directly into the static SaveLoad.PackComponent method. and doing it there.
if (testClassArray != null)
{
foreach (TestClass testClass_cur in testClassArray)
{
if (testClass_cur.go != null && testClass_cur.go.GetComponent<ObjectIdentifier>())
{
testClass_cur.go_id = testClass_cur.go.GetComponent<ObjectIdentifier>().id;
}
else
{
testClass_cur.go_id = null;
}
}
if(someGameObject != null && someGameObject.GetComponent<ObjectIdentifier>()) {
someGameObject_id = someGameObject.GetComponent<ObjectIdentifier>().id;
}
else {
someGameObject_id = null;
}
}
}
if(testClassArray != null) {
foreach(TestClass testClass_cur in testClassArray) {
if(testClass_cur.go != null && testClass_cur.go.GetComponent<ObjectIdentifier>()) {
testClass_cur.go_id = testClass_cur.go.GetComponent<ObjectIdentifier>().id;
}
else {
testClass_cur.go_id = null;
}
}
public void OnDeserialize()
{
}
}
//Since we saved the ID of the GameObject references, we can now use those to recreate the references.
//We just iterate through all the ObjectIdentifier component occurences in the scene, compare their id value to our saved and loaded someGameObject id (etc.) value,
//and assign the component's GameObject if it matches.
//Note that the "break" command is important, both because it elimitates unneccessary iterations,
//and because continuing after having found a match might for some reason find another, wrong match that makes a null reference.
public void OnDeserialize() {
ObjectIdentifier[] objectsIdentifiers = FindObjectsOfType(typeof(ObjectIdentifier)) as ObjectIdentifier[];
//Since we saved the ID of the GameObject references, we can now use those to recreate the references.
//We just iterate through all the ObjectIdentifier component occurences in the scene, compare their id value to our saved and loaded someGameObject id (etc.) value,
//and assign the component's GameObject if it matches.
//Note that the "break" command is important, both because it elimitates unneccessary iterations,
//and because continuing after having found a match might for some reason find another, wrong match that makes a null reference.
if (string.IsNullOrEmpty(someGameObject_id) == false)
{
foreach (ObjectIdentifier objectIdentifier in objectsIdentifiers)
{
ObjectIdentifier[] objectsIdentifiers = FindObjectsOfType(typeof(ObjectIdentifier)) as ObjectIdentifier[];
if (string.IsNullOrEmpty(objectIdentifier.id) == false)
{
if (objectIdentifier.id == someGameObject_id)
{
someGameObject = objectIdentifier.gameObject;
break;
}
}
}
}
if(string.IsNullOrEmpty(someGameObject_id) == false) {
foreach(ObjectIdentifier objectIdentifier in objectsIdentifiers) {
if(string.IsNullOrEmpty(objectIdentifier.id) == false) {
if(objectIdentifier.id == someGameObject_id) {
someGameObject = objectIdentifier.gameObject;
break;
}
}
}
}
if(testClassArray != null) {
foreach(TestClass testClass_cur in testClassArray) {
if(string.IsNullOrEmpty(testClass_cur.go_id) == false) {
foreach (ObjectIdentifier objectIdentifier in objectsIdentifiers) {
if(string.IsNullOrEmpty(objectIdentifier.id) == false) {
if(objectIdentifier.id == testClass_cur.go_id) {
testClass_cur.go = objectIdentifier.gameObject;
break;
}
}
}
}
}
}
}
if (testClassArray != null)
{
foreach (TestClass testClass_cur in testClassArray)
{
if (string.IsNullOrEmpty(testClass_cur.go_id) == false)
{
foreach (ObjectIdentifier objectIdentifier in objectsIdentifiers)
{
if (string.IsNullOrEmpty(objectIdentifier.id) == false)
{
if (objectIdentifier.id == testClass_cur.go_id)
{
testClass_cur.go = objectIdentifier.gameObject;
break;
}
}
}
}
}
}
}
}
}

View File

@ -1,54 +1,51 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI.Extensions;
public class AnimateEffects : MonoBehaviour
namespace UnityEngine.UI.Extensions.Examples
{
public LetterSpacing letterSpacing;
float letterSpacingMax = 10, letterSpacingMin = -10, letterSpacingModifier = 0.1f;
public CurvedText curvedText;
float curvedTextMax = 0.05f, curvedTextMin = -0.05f, curvedTextModifier = 0.001f;
public Gradient2 gradient2;
float gradient2Max = 1, gradient2Min = -1, gradient2Modifier = 0.01f;
public CylinderText cylinderText;
private Transform cylinderTextRT;
Vector3 cylinderRotation = new Vector3(0, 1, 0);
public SoftMaskScript SAUIM;
float SAUIMMax = 1, SAUIMMin = 0, SAUIMModifier = 0.01f;
// Use this for initialization
void Start()
public class AnimateEffects : MonoBehaviour
{
cylinderTextRT = cylinderText.GetComponent<Transform>();
}
// Update is called once per frame
void Update()
{
letterSpacing.spacing += letterSpacingModifier;
if (letterSpacing.spacing > letterSpacingMax || letterSpacing.spacing < letterSpacingMin)
public LetterSpacing letterSpacing;
float letterSpacingMax = 10, letterSpacingMin = -10, letterSpacingModifier = 0.1f;
public CurvedText curvedText;
float curvedTextMax = 0.05f, curvedTextMin = -0.05f, curvedTextModifier = 0.001f;
public Gradient2 gradient2;
float gradient2Max = 1, gradient2Min = -1, gradient2Modifier = 0.01f;
public CylinderText cylinderText;
private Transform cylinderTextRT;
Vector3 cylinderRotation = new Vector3(0, 1, 0);
public SoftMaskScript SAUIM;
float SAUIMMax = 1, SAUIMMin = 0, SAUIMModifier = 0.01f;
// Use this for initialization
void Start()
{
letterSpacingModifier = -letterSpacingModifier;
}
curvedText.CurveMultiplier += curvedTextModifier;
if (curvedText.CurveMultiplier > curvedTextMax || curvedText.CurveMultiplier < curvedTextMin)
{
curvedTextModifier = -curvedTextModifier;
}
gradient2.Offset += gradient2Modifier;
if (gradient2.Offset > gradient2Max || gradient2.Offset < gradient2Min)
{
gradient2Modifier = -gradient2Modifier;
cylinderTextRT = cylinderText.GetComponent<Transform>();
}
cylinderTextRT.Rotate(cylinderRotation);
SAUIM.CutOff += SAUIMModifier;
if (SAUIM.CutOff > SAUIMMax || SAUIM.CutOff < SAUIMMin)
// Update is called once per frame
void Update()
{
SAUIMModifier = -SAUIMModifier;
}
letterSpacing.spacing += letterSpacingModifier;
if (letterSpacing.spacing > letterSpacingMax || letterSpacing.spacing < letterSpacingMin)
{
letterSpacingModifier = -letterSpacingModifier;
}
curvedText.CurveMultiplier += curvedTextModifier;
if (curvedText.CurveMultiplier > curvedTextMax || curvedText.CurveMultiplier < curvedTextMin)
{
curvedTextModifier = -curvedTextModifier;
}
gradient2.Offset += gradient2Modifier;
if (gradient2.Offset > gradient2Max || gradient2.Offset < gradient2Min)
{
gradient2Modifier = -gradient2Modifier;
}
cylinderTextRT.Rotate(cylinderRotation);
SAUIM.CutOff += SAUIMModifier;
if (SAUIM.CutOff > SAUIMMax || SAUIM.CutOff < SAUIMMin)
{
SAUIMModifier = -SAUIMModifier;
}
}
}
}

View File

@ -0,0 +1,30 @@
/// Credit playemgames
/// Sourced from - http://forum.unity3d.com/threads/sprite-icons-with-text-e-g-emoticons.265927/
namespace UnityEngine.UI.Extensions.Examples
{
public class testHref : MonoBehaviour
{
public TextPic textPic;
void Awake()
{
textPic = GetComponent<TextPic>();
}
void OnEnable()
{
textPic.onHrefClick.AddListener(OnHrefClick);
}
void OnDisable()
{
textPic.onHrefClick.RemoveListener(OnHrefClick);
}
private void OnHrefClick(string hrefName)
{
Debug.Log("Click on the " + hrefName);
}
}
}

View File

@ -1,79 +1,78 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI.Extensions;
using System.Collections.Generic;
[RequireComponent(typeof(UILineRenderer))]
public class LineRendererOrbit : MonoBehaviour {
UILineRenderer lr;
Circle circle;
public GameObject OrbitGO;
RectTransform orbitGOrt;
float orbitTime;
[SerializeField]
private float _xAxis = 3;
public float xAxis
namespace UnityEngine.UI.Extensions.Examples
{
[RequireComponent(typeof(UILineRenderer))]
public class LineRendererOrbit : MonoBehaviour
{
get { return _xAxis; }
set { _xAxis = value; GenerateOrbit(); }
}
UILineRenderer lr;
Circle circle;
public GameObject OrbitGO;
RectTransform orbitGOrt;
float orbitTime;
[SerializeField]
private float _yAxis = 3;
[SerializeField]
private float _xAxis = 3;
public float yAxis
{
get { return _yAxis; }
set { _yAxis = value; GenerateOrbit(); }
}
[SerializeField]
private int _steps = 10;
public int Steps
{
get { return _steps; }
set { _steps = value; GenerateOrbit(); }
}
// Use this for initialization
void Awake () {
lr = GetComponent<UILineRenderer>();
orbitGOrt = OrbitGO.GetComponent<RectTransform>();
GenerateOrbit();
}
// Update is called once per frame
void Update () {
orbitTime = orbitTime > _steps ? orbitTime = 0 : orbitTime + Time.deltaTime;
orbitGOrt.localPosition = circle.Evaluate(orbitTime);
}
void GenerateOrbit()
{
circle = new Circle(xAxis: _xAxis,yAxis: _yAxis, steps: _steps);
List<Vector2> Points = new List<Vector2>();
for (int i = 0; i < _steps; i++)
public float xAxis
{
Points.Add(circle.Evaluate(i));
get { return _xAxis; }
set { _xAxis = value; GenerateOrbit(); }
}
Points.Add(circle.Evaluate(0));
lr.Points = Points.ToArray();
}
private void OnValidate()
{
if (lr != null)
[SerializeField]
private float _yAxis = 3;
public float yAxis
{
get { return _yAxis; }
set { _yAxis = value; GenerateOrbit(); }
}
[SerializeField]
private int _steps = 10;
public int Steps
{
get { return _steps; }
set { _steps = value; GenerateOrbit(); }
}
// Use this for initialization
void Awake()
{
lr = GetComponent<UILineRenderer>();
orbitGOrt = OrbitGO.GetComponent<RectTransform>();
GenerateOrbit();
}
// Update is called once per frame
void Update()
{
orbitTime = orbitTime > _steps ? orbitTime = 0 : orbitTime + Time.deltaTime;
orbitGOrt.localPosition = circle.Evaluate(orbitTime);
}
void GenerateOrbit()
{
circle = new Circle(xAxis: _xAxis, yAxis: _yAxis, steps: _steps);
List<Vector2> Points = new List<Vector2>();
for (int i = 0; i < _steps; i++)
{
Points.Add(circle.Evaluate(i));
}
Points.Add(circle.Evaluate(0));
lr.Points = Points.ToArray();
}
private void OnValidate()
{
if (lr != null)
{
GenerateOrbit();
}
}
}
}

View File

@ -1,22 +1,25 @@
using System.Collections.Generic;
using UnityEngine;
public class TestAddingPoints : MonoBehaviour {
public UnityEngine.UI.Extensions.UILineRenderer LineRenderer;
public UnityEngine.UI.Text XValue;
public UnityEngine.UI.Text YValue;
// Use this for initialization
public void AddNewPoint () {
var point = new Vector2() { x = float.Parse(XValue.text), y = float.Parse(YValue.text) };
var pointlist = new List<Vector2>(LineRenderer.Points);
pointlist.Add(point);
LineRenderer.Points = pointlist.ToArray();
}
public void ClearPoints()
namespace UnityEngine.UI.Extensions.Examples
{
public class TestAddingPoints : MonoBehaviour
{
LineRenderer.Points = new Vector2[0];
public UILineRenderer LineRenderer;
public Text XValue;
public Text YValue;
// Use this for initialization
public void AddNewPoint()
{
var point = new Vector2() { x = float.Parse(XValue.text), y = float.Parse(YValue.text) };
var pointlist = new List<Vector2>(LineRenderer.Points);
pointlist.Add(point);
LineRenderer.Points = pointlist.ToArray();
}
public void ClearPoints()
{
LineRenderer.Points = new Vector2[0];
}
}
}

View File

@ -140,8 +140,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -220, y: 1.5}
m_SizeDelta: {x: 263, y: 52}
m_AnchoredPosition: {x: -116, y: -23.5}
m_SizeDelta: {x: 361, y: 47}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &23818492
MonoBehaviour:
@ -284,9 +284,9 @@ RectTransform:
m_Father: {fileID: 1754109030}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -339.5, y: -40}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 58, y: 186}
m_SizeDelta: {x: 100, y: 102}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &125539413
@ -735,9 +735,9 @@ RectTransform:
m_Father: {fileID: 1754109030}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 243, y: -109}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -165, y: 112}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &651515359
@ -777,12 +777,7 @@ MonoBehaviour:
m_Sprite: {fileID: 0}
m_improveResolution: 0
m_Resolution: 0
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_useNativeSize: 0
m_points: []
lineThickness: 2
relativeSize: 0
@ -929,6 +924,7 @@ MonoBehaviour:
m_Sprite: {fileID: 0}
m_improveResolution: 0
m_Resolution: 0
m_useNativeSize: 0
m_fillPercent: 100
FixedToSegments: 0
m_fill: 1
@ -974,7 +970,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 314, y: -148}
m_AnchoredPosition: {x: 332, y: -121}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &772182605
@ -1083,7 +1079,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 35.5, y: 244}
m_AnchoredPosition: {x: 184.5, y: 197}
m_SizeDelta: {x: 311, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &977566256
@ -1157,7 +1153,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -120, y: 40}
m_AnchoredPosition: {x: 29, y: 25.5}
m_SizeDelta: {x: 311, y: 189}
m_Pivot: {x: 0, y: 0}
--- !u!114 &1025621201
@ -1182,12 +1178,7 @@ MonoBehaviour:
m_Sprite: {fileID: 0}
m_improveResolution: 0
m_Resolution: 0
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_useNativeSize: 0
m_points:
- {x: 0, y: 0}
- {x: 1, y: 0}
@ -1239,7 +1230,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 309, y: -193}
m_AnchoredPosition: {x: 320, y: -169}
m_SizeDelta: {x: 358, y: 44}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1032145591
@ -1984,7 +1975,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -178, y: 114.5}
m_AnchoredPosition: {x: -124, y: 81}
m_SizeDelta: {x: 154, y: 162}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1545772328
@ -2253,9 +2244,9 @@ RectTransform:
m_Father: {fileID: 1754109030}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -358, y: -224}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1625078207
@ -2843,17 +2834,12 @@ MonoBehaviour:
m_Sprite: {fileID: 0}
m_improveResolution: 0
m_Resolution: 0
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
m_useNativeSize: 0
m_points:
- {x: -339, y: -39.5}
- {x: -266, y: -180.5}
- {x: -127, y: -67.5}
- {x: -25, y: -187.5}
- {x: -300, y: -37.5}
- {x: -227, y: -178.5}
- {x: -88, y: -65.5}
- {x: 32, y: -158.5}
lineThickness: 7.41
relativeSize: 0
lineList: 0

View File

@ -5,226 +5,222 @@
/// Please donate: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RJ8D9FRFQF9VS
/// </summary>
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.UI.Extensions;
public class ScrollingCalendar : MonoBehaviour
namespace UnityEngine.UI.Extensions.Examples
{
public RectTransform monthsScrollingPanel;
public RectTransform yearsScrollingPanel;
public RectTransform daysScrollingPanel;
public GameObject yearsButtonPrefab;
public GameObject monthsButtonPrefab;
public GameObject daysButtonPrefab;
private GameObject[] monthsButtons;
private GameObject[] yearsButtons;
private GameObject[] daysButtons;
public RectTransform monthCenter;
public RectTransform yearsCenter;
public RectTransform daysCenter;
UIVerticalScroller yearsVerticalScroller;
UIVerticalScroller monthsVerticalScroller;
UIVerticalScroller daysVerticalScroller;
public InputField inputFieldDays;
public InputField inputFieldMonths;
public InputField inputFieldYears;
public Text dateText;
private int daysSet;
private int monthsSet;
private int yearsSet;
private void InitializeYears()
{
int currentYear = int.Parse(System.DateTime.Now.ToString("yyyy"));
int[] arrayYears = new int[currentYear+1 - 1900];
yearsButtons = new GameObject[arrayYears.Length];
for (int i = 0; i < arrayYears.Length; i++)
{
arrayYears[i] = 1900 + i;
GameObject clone = (GameObject)Instantiate(yearsButtonPrefab, new Vector3(0, i*80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(yearsScrollingPanel,false);
clone.transform.localScale = new Vector3(1, 1, 1);
clone.GetComponentInChildren<Text>().text = "" + arrayYears[i];
clone.name = "Year_" + arrayYears[i];
clone.AddComponent<CanvasGroup>();
yearsButtons[i] = clone;
}
}
//Initialize Months
private void InitializeMonths()
{
int[] months = new int[12];
monthsButtons = new GameObject[months.Length];
for (int i = 0; i < months.Length; i++)
{
string month = "";
months[i] = i;
GameObject clone = (GameObject)Instantiate(monthsButtonPrefab, new Vector3(0, i * 80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(monthsScrollingPanel,false);
clone.transform.localScale = new Vector3(1, 1, 1);
switch(i)
{
case 0:
month = "Jan";
break;
case 1:
month = "Feb";
break;
case 2:
month = "Mar";
break;
case 3:
month = "Apr";
break;
case 4:
month = "May";
break;
case 5:
month = "Jun";
break;
case 6:
month = "Jul";
break;
case 7:
month = "Aug";
break;
case 8:
month = "Sep";
break;
case 9:
month = "Oct";
break;
case 10:
month = "Nov";
break;
case 11:
month = "Dec";
break;
}
clone.GetComponentInChildren<Text>().text = month;
clone.name = "Month_" + months[i];
clone.AddComponent<CanvasGroup>();
monthsButtons[i] = clone;
}
}
private void InitializeDays()
{
int[] days = new int[31];
daysButtons = new GameObject[days.Length];
for (var i = 0; i < days.Length; i++)
{
days[i] = i+1;
GameObject clone = (GameObject)Instantiate(daysButtonPrefab, new Vector3(0, i * 80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(daysScrollingPanel,false);
clone.transform.localScale = new Vector3(1, 1, 1);
clone.GetComponentInChildren<Text>().text = "" + days[i];
clone.name = "Day_" + days[i];
clone.AddComponent<CanvasGroup>();
daysButtons[i] = clone;
}
}
// Use this for initialization
public void Awake()
public class ScrollingCalendar : MonoBehaviour
{
InitializeYears();
InitializeMonths();
InitializeDays();
public RectTransform monthsScrollingPanel;
public RectTransform yearsScrollingPanel;
public RectTransform daysScrollingPanel;
//Yes Unity complains about this but it doesn't matter in this case.
monthsVerticalScroller = new UIVerticalScroller(monthsScrollingPanel, monthsButtons, monthCenter);
yearsVerticalScroller = new UIVerticalScroller (yearsScrollingPanel, yearsButtons, yearsCenter);
daysVerticalScroller = new UIVerticalScroller (daysScrollingPanel, daysButtons, daysCenter);
public GameObject yearsButtonPrefab;
public GameObject monthsButtonPrefab;
public GameObject daysButtonPrefab;
monthsVerticalScroller.Start();
yearsVerticalScroller.Start();
daysVerticalScroller.Start();
}
private GameObject[] monthsButtons;
private GameObject[] yearsButtons;
private GameObject[] daysButtons;
public void SetDate()
{
daysSet = int.Parse(inputFieldDays.text) - 1;
monthsSet = int.Parse(inputFieldMonths.text) - 1;
yearsSet = int.Parse(inputFieldYears.text) - 1900;
public RectTransform monthCenter;
public RectTransform yearsCenter;
public RectTransform daysCenter;
daysVerticalScroller.SnapToElement(daysSet);
monthsVerticalScroller.SnapToElement(monthsSet);
yearsVerticalScroller.SnapToElement(yearsSet);
}
UIVerticalScroller yearsVerticalScroller;
UIVerticalScroller monthsVerticalScroller;
UIVerticalScroller daysVerticalScroller;
void Update ()
{
monthsVerticalScroller.Update();
yearsVerticalScroller.Update();
daysVerticalScroller.Update();
public InputField inputFieldDays;
public InputField inputFieldMonths;
public InputField inputFieldYears;
string dayString = daysVerticalScroller.GetResults();
string monthString = monthsVerticalScroller.GetResults();
string yearsString = yearsVerticalScroller.GetResults();
public Text dateText;
if (dayString.EndsWith("1") && dayString != "11")
dayString = dayString + "st";
else if (dayString.EndsWith("2") && dayString != "12")
dayString = dayString + "nd";
else if (dayString.EndsWith("3") && dayString != "13")
dayString = dayString + "rd";
else
dayString = dayString + "th";
private int daysSet;
private int monthsSet;
private int yearsSet;
dateText.text = monthString + " " + dayString + " " + yearsString;
}
private void InitializeYears()
{
int currentYear = int.Parse(System.DateTime.Now.ToString("yyyy"));
public void DaysScrollUp()
{
daysVerticalScroller.ScrollUp();
}
int[] arrayYears = new int[currentYear + 1 - 1900];
public void DaysScrollDown()
{
daysVerticalScroller.ScrollDown();
}
yearsButtons = new GameObject[arrayYears.Length];
public void MonthsScrollUp()
{
monthsVerticalScroller.ScrollUp();
}
for (int i = 0; i < arrayYears.Length; i++)
{
arrayYears[i] = 1900 + i;
public void MonthsScrollDown()
{
monthsVerticalScroller.ScrollDown();
}
GameObject clone = (GameObject)Instantiate(yearsButtonPrefab, new Vector3(0, i * 80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(yearsScrollingPanel, false);
clone.transform.localScale = new Vector3(1, 1, 1);
clone.GetComponentInChildren<Text>().text = "" + arrayYears[i];
clone.name = "Year_" + arrayYears[i];
clone.AddComponent<CanvasGroup>();
yearsButtons[i] = clone;
public void YearsScrollUp()
{
yearsVerticalScroller.ScrollUp();
}
}
public void YearsScrollDown()
{
yearsVerticalScroller.ScrollDown();
}
//Initialize Months
private void InitializeMonths()
{
int[] months = new int[12];
monthsButtons = new GameObject[months.Length];
for (int i = 0; i < months.Length; i++)
{
string month = "";
months[i] = i;
GameObject clone = (GameObject)Instantiate(monthsButtonPrefab, new Vector3(0, i * 80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(monthsScrollingPanel, false);
clone.transform.localScale = new Vector3(1, 1, 1);
switch (i)
{
case 0:
month = "Jan";
break;
case 1:
month = "Feb";
break;
case 2:
month = "Mar";
break;
case 3:
month = "Apr";
break;
case 4:
month = "May";
break;
case 5:
month = "Jun";
break;
case 6:
month = "Jul";
break;
case 7:
month = "Aug";
break;
case 8:
month = "Sep";
break;
case 9:
month = "Oct";
break;
case 10:
month = "Nov";
break;
case 11:
month = "Dec";
break;
}
clone.GetComponentInChildren<Text>().text = month;
clone.name = "Month_" + months[i];
clone.AddComponent<CanvasGroup>();
monthsButtons[i] = clone;
}
}
private void InitializeDays()
{
int[] days = new int[31];
daysButtons = new GameObject[days.Length];
for (var i = 0; i < days.Length; i++)
{
days[i] = i + 1;
GameObject clone = (GameObject)Instantiate(daysButtonPrefab, new Vector3(0, i * 80, 0), Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject;
clone.transform.SetParent(daysScrollingPanel, false);
clone.transform.localScale = new Vector3(1, 1, 1);
clone.GetComponentInChildren<Text>().text = "" + days[i];
clone.name = "Day_" + days[i];
clone.AddComponent<CanvasGroup>();
daysButtons[i] = clone;
}
}
// Use this for initialization
public void Awake()
{
InitializeYears();
InitializeMonths();
InitializeDays();
//Yes Unity complains about this but it doesn't matter in this case.
monthsVerticalScroller = new UIVerticalScroller(monthsScrollingPanel, monthsButtons, monthCenter);
yearsVerticalScroller = new UIVerticalScroller(yearsScrollingPanel, yearsButtons, yearsCenter);
daysVerticalScroller = new UIVerticalScroller(daysScrollingPanel, daysButtons, daysCenter);
monthsVerticalScroller.Start();
yearsVerticalScroller.Start();
daysVerticalScroller.Start();
}
public void SetDate()
{
daysSet = int.Parse(inputFieldDays.text) - 1;
monthsSet = int.Parse(inputFieldMonths.text) - 1;
yearsSet = int.Parse(inputFieldYears.text) - 1900;
daysVerticalScroller.SnapToElement(daysSet);
monthsVerticalScroller.SnapToElement(monthsSet);
yearsVerticalScroller.SnapToElement(yearsSet);
}
void Update()
{
monthsVerticalScroller.Update();
yearsVerticalScroller.Update();
daysVerticalScroller.Update();
string dayString = daysVerticalScroller.GetResults();
string monthString = monthsVerticalScroller.GetResults();
string yearsString = yearsVerticalScroller.GetResults();
if (dayString.EndsWith("1") && dayString != "11")
dayString = dayString + "st";
else if (dayString.EndsWith("2") && dayString != "12")
dayString = dayString + "nd";
else if (dayString.EndsWith("3") && dayString != "13")
dayString = dayString + "rd";
else
dayString = dayString + "th";
dateText.text = monthString + " " + dayString + " " + yearsString;
}
public void DaysScrollUp()
{
daysVerticalScroller.ScrollUp();
}
public void DaysScrollDown()
{
daysVerticalScroller.ScrollDown();
}
public void MonthsScrollUp()
{
monthsVerticalScroller.ScrollUp();
}
public void MonthsScrollDown()
{
monthsVerticalScroller.ScrollDown();
}
public void YearsScrollUp()
{
yearsVerticalScroller.ScrollUp();
}
public void YearsScrollDown()
{
yearsVerticalScroller.ScrollDown();
}
}
}

View File

@ -1,30 +0,0 @@
/// Credit playemgames
/// Sourced from - http://forum.unity3d.com/threads/sprite-icons-with-text-e-g-emoticons.265927/
using UnityEngine;
using UnityEngine.UI.Extensions;
public class testHref : MonoBehaviour
{
public TextPic textPic;
void Awake()
{
textPic = GetComponent<TextPic>();
}
void OnEnable()
{
textPic.onHrefClick.AddListener(OnHrefClick);
}
void OnDisable()
{
textPic.onHrefClick.RemoveListener(OnHrefClick);
}
private void OnHrefClick(string hrefName)
{
Debug.Log("Click on the " + hrefName);
}
}

View File

@ -130,7 +130,7 @@ Scroll Snap (alt implementation)|Reorderable List|UI Vertical Scroller|Curved La
------|------|------|------|
Best Fit Outline|Curved Text|Gradient|Gradient2|Letter Spacing
NicerOutline|RaycastMask|UIFlippable|UIImageCrop|SoftAlphaMask
CylinderText|UIParticleSystem|||
CylinderText|UIParticleSystem|CurlyUI||
||||
[VR Components](https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/wiki/Controls#markdown-header-vr_components)|||||

View File

@ -0,0 +1,252 @@
/// Credit mgear, SimonDarksideJ
/// Sourced from - https://forum.unity3d.com/threads/radial-slider-circle-slider.326392/#post-3143582
/// Updated to include lerping features and programatic access to angle/value
using System;
using System.Collections;
using UnityEngine.Events;
using UnityEngine.EventSystems;
namespace UnityEngine.UI.Extensions
{
[AddComponentMenu("UI/Extensions/Radial Slider")]
[RequireComponent(typeof(Image))]
public class RadialSlider : MonoBehaviour, IPointerEnterHandler, IPointerDownHandler, IPointerUpHandler
{
private bool isPointerDown, isPointerReleased, lerpInProgress;
private Vector2 m_localPos;
private float m_targetAngle, m_lerpTargetAngle, m_startAngle, m_currentLerpTime, m_lerpTime;
private Camera m_eventCamera;
private Image m_image;
[SerializeField]
[Tooltip("Radial Gradient Start Color")]
private Color m_startColor = Color.green;
[SerializeField]
[Tooltip("Radial Gradient End Color")]
private Color m_endColor = Color.red;
[Tooltip("Move slider absolute or use Lerping?\nDragging only supported with absolute")]
[SerializeField]
private bool m_lerpToTarget;
[Tooltip("Curve to apply to the Lerp\nMust be set to enable Lerp")]
[SerializeField]
private AnimationCurve m_lerpCurve;
[Tooltip("Event fired when value of control changes, outputs an INT angle value")]
[SerializeField]
private RadialSliderValueChangedEvent _onValueChanged = new RadialSliderValueChangedEvent();
[Tooltip("Event fired when value of control changes, outputs a TEXT angle value")]
[SerializeField]
private RadialSliderTextValueChangedEvent _onTextValueChanged = new RadialSliderTextValueChangedEvent();
public float Angle
{
get { return RadialImage.fillAmount * 360f; }
set
{
if (LerpToTarget)
{
StartLerp(value / 360f);
}
else
{
UpdateRadialImage(value / 360f);
}
}
}
public float Value
{
get { return RadialImage.fillAmount; }
set
{
if (LerpToTarget)
{
StartLerp(value);
}
else
{
UpdateRadialImage(value);
}
}
}
public Color EndColor
{
get { return m_endColor; }
set { m_endColor = value; }
}
public Color StartColor
{
get { return m_startColor; }
set { m_startColor = value; }
}
public bool LerpToTarget
{
get { return m_lerpToTarget; }
set { m_lerpToTarget = value; }
}
public AnimationCurve LerpCurve
{
get { return m_lerpCurve; }
set { m_lerpCurve = value; m_lerpTime = LerpCurve[LerpCurve.length - 1].time; }
}
public bool LerpInProgress
{
get { return lerpInProgress; }
}
[Serializable]
public class RadialSliderValueChangedEvent : UnityEvent<int> { }
[Serializable]
public class RadialSliderTextValueChangedEvent : UnityEvent<string> { }
public Image RadialImage
{
get
{
if (m_image == null)
{
m_image = GetComponent<Image>();
m_image.type = Image.Type.Filled;
m_image.fillMethod = Image.FillMethod.Radial360;
m_image.fillOrigin = 3;
m_image.fillAmount = 0;
}
return m_image;
}
}
public RadialSliderValueChangedEvent onValueChanged
{
get { return _onValueChanged; }
set { _onValueChanged = value; }
}
public RadialSliderTextValueChangedEvent onTextValueChanged
{
get { return _onTextValueChanged; }
set { _onTextValueChanged = value; }
}
private void Awake()
{
if (LerpCurve != null && LerpCurve.length > 0)
{
m_lerpTime = LerpCurve[LerpCurve.length - 1].time;
}
else
{
m_lerpTime = 1;
}
}
private void Update()
{
if (isPointerDown)
{
m_targetAngle = GetAngleFromMousePoint();
if (!lerpInProgress)
{
if (!LerpToTarget)
{
UpdateRadialImage(m_targetAngle);
NotifyValueChanged();
}
else
{
if (isPointerReleased) StartLerp(m_targetAngle);
isPointerReleased = false;
}
}
}
if (lerpInProgress && Value != m_lerpTargetAngle)
{
m_currentLerpTime += Time.deltaTime;
float perc = m_currentLerpTime / m_lerpTime;
if (LerpCurve != null && LerpCurve.length > 0)
{
UpdateRadialImage(Mathf.Lerp(m_startAngle, m_lerpTargetAngle, LerpCurve.Evaluate(perc)));
}
else
{
UpdateRadialImage(Mathf.Lerp(m_startAngle, m_lerpTargetAngle, perc));
}
}
if (m_currentLerpTime >= m_lerpTime || Value == m_lerpTargetAngle)
{
lerpInProgress = false;
UpdateRadialImage(m_lerpTargetAngle);
NotifyValueChanged();
}
}
private void StartLerp(float targetAngle)
{
if (!lerpInProgress)
{
m_startAngle = Value;
m_lerpTargetAngle = targetAngle;
m_currentLerpTime = 0f;
lerpInProgress = true;
}
}
private float GetAngleFromMousePoint()
{
RectTransformUtility.ScreenPointToLocalPointInRectangle(transform as RectTransform, Input.mousePosition, m_eventCamera, out m_localPos);
// radial pos of the mouse position.
return (Mathf.Atan2(-m_localPos.y, m_localPos.x) * 180f / Mathf.PI + 180f) / 360f;
}
private void UpdateRadialImage(float targetAngle)
{
RadialImage.fillAmount = targetAngle;
RadialImage.color = Color.Lerp(m_startColor, m_endColor, targetAngle);
}
private void NotifyValueChanged()
{
_onValueChanged.Invoke((int)(m_targetAngle * 360f));
_onTextValueChanged.Invoke(((int)(m_targetAngle * 360f)).ToString());
}
//#if UNITY_EDITOR
// private void OnValidate()
// {
// if (LerpToTarget && LerpCurve.length < 2)
// {
// LerpToTarget = false;
// Debug.LogError("You need to define a Lerp Curve to enable 'Lerp To Target'");
// }
// }
//#endif
#region Interfaces
// Called when the pointer enters our GUI component.
// Start tracking the mouse
public void OnPointerEnter(PointerEventData eventData)
{
m_eventCamera = eventData.enterEventCamera;
}
public void OnPointerDown(PointerEventData eventData)
{
m_eventCamera = eventData.enterEventCamera;
isPointerDown = true;
}
public void OnPointerUp(PointerEventData eventData)
{
isPointerDown = false;
isPointerReleased = true;
}
#endregion
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 803cebee00d5c504e930205383017dc1
timeCreated: 1432062988
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -3,12 +3,10 @@
/// Updated Credit BenZed
/// Sourced from - http://forum.unity3d.com/threads/color-picker.267043/
namespace UnityEngine.UI.Extensions
{
public class ExampleSelectable : MonoBehaviour, IBoxSelectable
{
#region Implemented members of IBoxSelectable
bool _selected = false;
public bool selected

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e8f8c7784bd14f146a01bb324949f7cb
folderAsset: yes
timeCreated: 1501406849
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,116 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
namespace UnityEngine.UI.Extensions
{
/// <summary>
/// Assume to be a cubic bezier curve at the moment.
/// </summary>
public class CUIBezierCurve : MonoBehaviour
{
public readonly static int CubicBezierCurvePtNum = 4;
#region Descriptions
[SerializeField]
protected Vector3[] controlPoints;
public Vector3[] ControlPoints
{
get
{
return controlPoints;
}
}
#if UNITY_EDITOR
/// <summary>
/// Reserve for editor only
/// </summary>
public Vector3[] EDITOR_ControlPoints
{
set
{
controlPoints = value;
}
}
#endif
#endregion
#region Events
#if UNITY_EDITOR
protected void OnValidate()
{
Refresh();
}
#endif
public void Refresh()
{
if (OnRefresh != null)
OnRefresh();
}
#endregion
#region Services
/// <summary>
/// call this to get a sample
/// </summary>
/// <param name="_time"></param>
/// <returns>sample returned by said time</returns>
public Vector3 GetPoint(float _time)
{
float oneMinusTime = 1 - _time;
return oneMinusTime * oneMinusTime * oneMinusTime * controlPoints[0] +
3 * oneMinusTime * oneMinusTime * _time * controlPoints[1] +
3 * oneMinusTime * _time * _time * controlPoints[2] +
_time * _time * _time * controlPoints[3];
}
public Vector3 GetTangent(float _time)
{
float oneMinusTime = 1 - _time;
return 3 * oneMinusTime * oneMinusTime * (controlPoints[1] - controlPoints[0]) +
6 * oneMinusTime * _time * (controlPoints[2] - controlPoints[1]) +
3 * _time * _time * (controlPoints[3] - controlPoints[2]);
}
#endregion
#region Configurations
public void ReportSet()
{
if (controlPoints == null)
{
controlPoints = new Vector3[CUIBezierCurve.CubicBezierCurvePtNum];
controlPoints[0] = new Vector3(0, 0, 0);
controlPoints[1] = new Vector3(0, 1, 0);
controlPoints[2] = new Vector3(1, 1, 0);
controlPoints[3] = new Vector3(1, 0, 0);
}
bool isPointsReady = true;
isPointsReady = isPointsReady & controlPoints.Length == CUIBezierCurve.CubicBezierCurvePtNum;
}
#endregion
#region Services
public System.Action OnRefresh;
#endregion
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 983a3e151cd916d4faf111dc86266574
timeCreated: 1485671878
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,617 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace UnityEngine.UI.Extensions
{
[RequireComponent(typeof(RectTransform))]
[RequireComponent(typeof(Graphic))]
[DisallowMultipleComponent]
[AddComponentMenu("UI/Effects/Extensions/Curly UI Graphic")]
public class CUIGraphic : BaseMeshEffect
{
// Describing the properties that are shared by all objects of this class
#region Nature
readonly public static int bottomCurveIdx = 0;
readonly public static int topCurveIdx = 1;
#endregion
/// <summary>
/// Describing the properties of this object.
/// </summary>
#region Description
[Tooltip("Set true to make the curve/morph to work. Set false to quickly see the original UI.")]
[SerializeField]
protected bool isCurved = true;
public bool IsCurved
{
get
{
return isCurved;
}
}
[Tooltip("Set true to dynamically change the curve according to the dynamic change of the UI layout")]
[SerializeField]
protected bool isLockWithRatio = true;
public bool IsLockWithRatio
{
get
{
return isLockWithRatio;
}
}
[Tooltip("Pick a higher resolution to improve the quality of the curved graphic.")]
[SerializeField]
[Range(0.01f, 30.0f)]
protected float resolution = 5.0f;
#endregion
/// <summary>
/// Refernce to other objects that are needed by this object.
/// </summary>
#region Links
protected RectTransform rectTrans;
public RectTransform RectTrans
{
get
{
return rectTrans;
}
}
[Tooltip("Put in the Graphic you want to curve/morph here.")]
[SerializeField]
protected Graphic uiGraphic;
public Graphic UIGraphic
{
get
{
return uiGraphic;
}
}
[Tooltip("Put in the reference Graphic that will be used to tune the bezier curves. Think button image and text.")]
[SerializeField]
protected CUIGraphic refCUIGraphic;
public CUIGraphic RefCUIGraphic
{
get
{
return refCUIGraphic;
}
}
[Tooltip("Do not touch this unless you are sure what you are doing. The curves are (re)generated automatically.")]
[SerializeField]
protected CUIBezierCurve[] refCurves;
public CUIBezierCurve[] RefCurves
{
get
{
return refCurves;
}
}
[HideInInspector]
[SerializeField]
protected Vector3_Array2D[] refCurvesControlRatioPoints;
public Vector3_Array2D[] RefCurvesControlRatioPoints
{
get
{
return refCurvesControlRatioPoints;
}
}
#if UNITY_EDITOR
public CUIBezierCurve[] EDITOR_RefCurves
{
set
{
refCurves = value;
}
}
public Vector3_Array2D[] EDITOR_RefCurvesControlRatioPoints
{
set
{
refCurvesControlRatioPoints = value;
}
}
#endif
#endregion
// Methods that are used often.
#region Reuse
protected List<UIVertex> reuse_quads = new List<UIVertex>();
#endregion
#region Action
protected void solveDoubleEquationWithVector(float _x_1, float _y_1, float _x_2, float _y_2, Vector3 _constant_1, Vector3 _contant_2, out Vector3 _x, out Vector3 _y)
{
Vector3 f;
float g;
if (Mathf.Abs(_x_1) > Mathf.Abs(_x_2))
{
f = _constant_1 * _x_2 / _x_1;
g = _y_1 * _x_2 / _x_1;
_y = (_contant_2 - f) / (_y_2 - g);
if (_x_2 != 0)
_x = (f - g * _y) / _x_2;
else
_x = (_constant_1 - _y_1 * _y) / _x_1;
}
else
{
f = _contant_2 * _x_1 / _x_2;
g = _y_2 * _x_1 / _x_2;
_x = (_constant_1 - f) / (_y_1 - g);
if (_x_1 != 0)
_y = (f - g * _x) / _x_1;
else
_y = (_contant_2 - _y_2 * _x) / _x_2;
}
}
protected UIVertex uiVertexLerp(UIVertex _a, UIVertex _b, float _time)
{
UIVertex tmpUIVertex = new UIVertex();
tmpUIVertex.position = Vector3.Lerp(_a.position, _b.position, _time);
tmpUIVertex.normal = Vector3.Lerp(_a.normal, _b.normal, _time);
tmpUIVertex.tangent = Vector3.Lerp(_a.tangent, _b.tangent, _time);
tmpUIVertex.uv0 = Vector2.Lerp(_a.uv0, _b.uv0, _time);
tmpUIVertex.uv1 = Vector2.Lerp(_a.uv1, _b.uv1, _time);
tmpUIVertex.color = Color.Lerp(_a.color, _b.color, _time);
return tmpUIVertex;
}
/// <summary>
/// Bilinear Interpolation
/// </summary>
protected UIVertex uiVertexBerp(UIVertex v_bottomLeft, UIVertex v_topLeft, UIVertex v_topRight, UIVertex v_bottomRight, float _xTime, float _yTime)
{
UIVertex topX = uiVertexLerp(v_topLeft, v_topRight, _xTime);
UIVertex bottomX = uiVertexLerp(v_bottomLeft, v_bottomRight, _xTime);
return uiVertexLerp(bottomX, topX, _yTime);
}
protected void tessellateQuad(List<UIVertex> _quads, int _thisQuadIdx)
{
UIVertex v_bottomLeft = _quads[_thisQuadIdx];
UIVertex v_topLeft = _quads[_thisQuadIdx + 1];
UIVertex v_topRight = _quads[_thisQuadIdx + 2];
UIVertex v_bottomRight = _quads[_thisQuadIdx + 3];
float quadSize = 100.0f / resolution;
int heightQuadEdgeNum = Mathf.Max(1, Mathf.CeilToInt((v_topLeft.position - v_bottomLeft.position).magnitude / quadSize));
int widthQuadEdgeNum = Mathf.Max(1, Mathf.CeilToInt((v_topRight.position - v_topLeft.position).magnitude / quadSize));
int quadIdx = 0;
for (int x = 0; x < widthQuadEdgeNum; x++)
{
for (int y = 0; y < heightQuadEdgeNum; y++, quadIdx++)
{
_quads.Add(new UIVertex());
_quads.Add(new UIVertex());
_quads.Add(new UIVertex());
_quads.Add(new UIVertex());
float xRatio = (float)x / widthQuadEdgeNum;
float yRatio = (float)y / heightQuadEdgeNum;
float xPlusOneRatio = (float)(x + 1) / widthQuadEdgeNum;
float yPlusOneRatio = (float)(y + 1) / heightQuadEdgeNum;
_quads[_quads.Count - 4] = uiVertexBerp(v_bottomLeft, v_topLeft, v_topRight, v_bottomRight, xRatio, yRatio);
_quads[_quads.Count - 3] = uiVertexBerp(v_bottomLeft, v_topLeft, v_topRight, v_bottomRight, xRatio, yPlusOneRatio);
_quads[_quads.Count - 2] = uiVertexBerp(v_bottomLeft, v_topLeft, v_topRight, v_bottomRight, xPlusOneRatio, yPlusOneRatio);
_quads[_quads.Count - 1] = uiVertexBerp(v_bottomLeft, v_topLeft, v_topRight, v_bottomRight, xPlusOneRatio, yRatio);
}
}
}
protected void tessellateGraphic(List<UIVertex> _verts)
{
for (int v = 0; v < _verts.Count; v += 6)
{
reuse_quads.Add(_verts[v]); // bottom left
reuse_quads.Add(_verts[v + 1]); // top left
reuse_quads.Add(_verts[v + 2]); // top right
// verts[3] is redundant, top right
reuse_quads.Add(_verts[v + 4]); // bottom right
// verts[5] is redundant, bottom left
}
int oriQuadNum = reuse_quads.Count / 4;
for (int q = 0; q < oriQuadNum; q++)
{
tessellateQuad(reuse_quads, q * 4);
}
// remove original quads
reuse_quads.RemoveRange(0, oriQuadNum * 4);
_verts.Clear();
// process new quads and turn them into triangles
for (int q = 0; q < reuse_quads.Count; q += 4)
{
_verts.Add(reuse_quads[q]);
_verts.Add(reuse_quads[q + 1]);
_verts.Add(reuse_quads[q + 2]);
_verts.Add(reuse_quads[q + 2]);
_verts.Add(reuse_quads[q + 3]);
_verts.Add(reuse_quads[q]);
}
reuse_quads.Clear();
}
#endregion
// Events are for handling reoccuring function calls that react to the changes of the environment.
#region Events
protected override void OnRectTransformDimensionsChange()
{
if (isLockWithRatio)
{
UpdateCurveControlPointPositions();
}
}
public void Refresh()
{
ReportSet();
// we use local position as the true value. Ratio position follows it, so it should be updated when refresh
for (int c = 0; c < refCurves.Length; c++)
{
CUIBezierCurve curve = refCurves[c];
if (curve.ControlPoints != null)
{
Vector3[] controlPoints = curve.ControlPoints;
for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++)
{
#if UNITY_EDITOR
Undo.RecordObject(this, "Move Point");
#endif
Vector3 ratioPoint = controlPoints[p];
ratioPoint.x = (ratioPoint.x + rectTrans.rect.width * rectTrans.pivot.x) / rectTrans.rect.width;
ratioPoint.y = (ratioPoint.y + rectTrans.rect.height * rectTrans.pivot.y) / rectTrans.rect.height;
refCurvesControlRatioPoints[c][p] = ratioPoint;
}
}
}
//uiText.SetAllDirty();
// need this to refresh the UI text, SetAllDirty does not seem to work for all cases
if (uiGraphic != null)
{
uiGraphic.enabled = false;
uiGraphic.enabled = true;
}
}
#endregion
// Methods that change the behaviour of the object.
#region Flash-Phase
protected override void Awake()
{
base.Awake();
OnRectTransformDimensionsChange();
}
protected override void OnEnable()
{
base.OnEnable();
OnRectTransformDimensionsChange();
}
#endregion
#region Configurations
/// <summary>
/// Check, prepare and set everything needed.
/// </summary>
public virtual void ReportSet()
{
if (rectTrans == null)
rectTrans = GetComponent<RectTransform>();
if (refCurves == null)
refCurves = new CUIBezierCurve[2];
bool isCurvesReady = true;
for (int c = 0; c < 2; c++)
{
isCurvesReady = isCurvesReady & refCurves[c] != null;
}
isCurvesReady = isCurvesReady & refCurves.Length == 2;
if (!isCurvesReady)
{
CUIBezierCurve[] curves = refCurves;
for (int c = 0; c < 2; c++)
{
if (refCurves[c] == null)
{
GameObject go = new GameObject();
go.transform.SetParent(transform);
go.transform.localPosition = Vector3.zero;
go.transform.localEulerAngles = Vector3.zero;
if (c == 0)
{
go.name = "BottomRefCurve";
}
else
{
go.name = "TopRefCurve";
}
curves[c] = go.AddComponent<CUIBezierCurve>();
}
else
{
curves[c] = refCurves[c];
}
curves[c].ReportSet();
}
refCurves = curves;
}
if (refCurvesControlRatioPoints == null)
{
refCurvesControlRatioPoints = new Vector3_Array2D[refCurves.Length];
for (int c = 0; c < refCurves.Length; c++)
{
{
refCurvesControlRatioPoints[c].array = new Vector3[refCurves[c].ControlPoints.Length];
}
}
FixTextToRectTrans();
Refresh();
}
for (int c = 0; c < 2; c++)
{
refCurves[c].OnRefresh = Refresh;
}
}
public void FixTextToRectTrans()
{
for (int c = 0; c < refCurves.Length; c++)
{
CUIBezierCurve curve = refCurves[c];
for (int p = 0; p < CUIBezierCurve.CubicBezierCurvePtNum; p++)
{
if (curve.ControlPoints != null)
{
Vector3[] controlPoints = curve.ControlPoints;
if (c == 0)
{
controlPoints[p].y = -rectTrans.rect.height * rectTrans.pivot.y;
}
else
{
controlPoints[p].y = rectTrans.rect.height - rectTrans.rect.height * rectTrans.pivot.y;
}
controlPoints[p].x = rectTrans.rect.width * p / (CUIBezierCurve.CubicBezierCurvePtNum - 1);
controlPoints[p].x -= rectTrans.rect.width * rectTrans.pivot.x;
controlPoints[p].z = 0;
}
}
}
}
public void ReferenceCUIForBCurves()
{
// compute the position ratio of this rect transform in perspective of reference rect transform
Vector3 posDeltaBetweenBottomLeftCorner = rectTrans.localPosition;// Difference between pivot
posDeltaBetweenBottomLeftCorner.x += -rectTrans.rect.width * rectTrans.pivot.x + (refCUIGraphic.rectTrans.rect.width * refCUIGraphic.rectTrans.pivot.x);
posDeltaBetweenBottomLeftCorner.y += -rectTrans.rect.height * rectTrans.pivot.y + (refCUIGraphic.rectTrans.rect.height * refCUIGraphic.rectTrans.pivot.y);
//posDeltaBetweenBottomLeftCorner.z = rectTrans.localPosition.z;
Vector3 bottomLeftPosRatio = new Vector3(posDeltaBetweenBottomLeftCorner.x / refCUIGraphic.RectTrans.rect.width, posDeltaBetweenBottomLeftCorner.y / refCUIGraphic.RectTrans.rect.height, posDeltaBetweenBottomLeftCorner.z);
Vector3 topRightPosRatio = new Vector3((posDeltaBetweenBottomLeftCorner.x + rectTrans.rect.width) / refCUIGraphic.RectTrans.rect.width, (posDeltaBetweenBottomLeftCorner.y + rectTrans.rect.height) / refCUIGraphic.RectTrans.rect.height, posDeltaBetweenBottomLeftCorner.z);
refCurves[0].ControlPoints[0] = refCUIGraphic.GetBCurveSandwichSpacePoint(bottomLeftPosRatio.x, bottomLeftPosRatio.y) - rectTrans.localPosition;
refCurves[0].ControlPoints[3] = refCUIGraphic.GetBCurveSandwichSpacePoint(topRightPosRatio.x, bottomLeftPosRatio.y) - rectTrans.localPosition;
refCurves[1].ControlPoints[0] = refCUIGraphic.GetBCurveSandwichSpacePoint(bottomLeftPosRatio.x, topRightPosRatio.y) - rectTrans.localPosition;
refCurves[1].ControlPoints[3] = refCUIGraphic.GetBCurveSandwichSpacePoint(topRightPosRatio.x, topRightPosRatio.y) - rectTrans.localPosition;
// use two sample points from the reference curves to find the second and third controls points for this curves
for (int c = 0; c < refCurves.Length; c++)
{
CUIBezierCurve curve = refCurves[c];
float yTime = c == 0 ? bottomLeftPosRatio.y : topRightPosRatio.y;
Vector3 leftPoint = refCUIGraphic.GetBCurveSandwichSpacePoint(bottomLeftPosRatio.x, yTime);
Vector3 rightPoint = refCUIGraphic.GetBCurveSandwichSpacePoint(topRightPosRatio.x, yTime);
float quarter = 0.25f,
threeQuarter = 0.75f;
Vector3 quarterPoint = refCUIGraphic.GetBCurveSandwichSpacePoint((bottomLeftPosRatio.x * 0.75f + topRightPosRatio.x * 0.25f) / 1.0f, yTime);
Vector3 threeQuaterPoint = refCUIGraphic.GetBCurveSandwichSpacePoint((bottomLeftPosRatio.x * 0.25f + topRightPosRatio.x * 0.75f) / 1.0f, yTime);
float x_1 = 3 * threeQuarter * threeQuarter * quarter, // (1 - t)(1 - t)t
y_1 = 3 * threeQuarter * quarter * quarter,
x_2 = 3 * quarter * quarter * threeQuarter,
y_2 = 3 * quarter * threeQuarter * threeQuarter;
Vector3 contant_1 = quarterPoint - Mathf.Pow(threeQuarter, 3) * leftPoint - Mathf.Pow(quarter, 3) * rightPoint,
contant_2 = threeQuaterPoint - Mathf.Pow(quarter, 3) * leftPoint - Mathf.Pow(threeQuarter, 3) * rightPoint,
p1,
p2;
solveDoubleEquationWithVector(x_1, y_1, x_2, y_2, contant_1, contant_2, out p1, out p2);
curve.ControlPoints[1] = p1 - rectTrans.localPosition;
curve.ControlPoints[2] = p2 - rectTrans.localPosition;
}
// use tangent and start and end time to derive control point 2 and 3
}
public override void ModifyMesh(Mesh _mesh)
{
if (!IsActive())
return;
using (VertexHelper vh = new VertexHelper(_mesh))
{
ModifyMesh(vh);
vh.FillMesh(_mesh);
}
}
public override void ModifyMesh(VertexHelper _vh)
{
if (!IsActive())
return;
List<UIVertex> vertexList = new List<UIVertex>();
_vh.GetUIVertexStream(vertexList);
modifyVertices(vertexList);
_vh.Clear();
_vh.AddUIVertexTriangleStream(vertexList);
}
protected virtual void modifyVertices(List<UIVertex> _verts)
{
if (!IsActive())
return;
tessellateGraphic(_verts);
if (!isCurved)
{
return;
}
for (int index = 0; index < _verts.Count; index++)
{
var uiVertex = _verts[index];
// finding the horizontal ratio position (0.0 - 1.0) of a vertex
float horRatio = (uiVertex.position.x + rectTrans.rect.width * rectTrans.pivot.x) / rectTrans.rect.width;
float verRatio = (uiVertex.position.y + rectTrans.rect.height * rectTrans.pivot.y) / rectTrans.rect.height;
//Vector3 pos = Vector3.Lerp(refCurves[0].GetPoint(horRatio), refCurves[1].GetPoint(horRatio), verRatio);
Vector3 pos = GetBCurveSandwichSpacePoint(horRatio, verRatio);
uiVertex.position.x = pos.x;
uiVertex.position.y = pos.y;
uiVertex.position.z = pos.z;
_verts[index] = uiVertex;
}
}
public void UpdateCurveControlPointPositions()
{
ReportSet();
for (int c = 0; c < refCurves.Length; c++)
{
CUIBezierCurve curve = refCurves[c];
#if UNITY_EDITOR
Undo.RecordObject(curve, "Move Rect");
#endif
for (int p = 0; p < refCurves[c].ControlPoints.Length; p++)
{
Vector3 newPt = refCurvesControlRatioPoints[c][p];
newPt.x = newPt.x * rectTrans.rect.width - rectTrans.rect.width * rectTrans.pivot.x;
newPt.y = newPt.y * rectTrans.rect.height - rectTrans.rect.height * rectTrans.pivot.y;
curve.ControlPoints[p] = newPt;
}
}
}
#endregion
// Methods that serves other objects
#region Services
public Vector3 GetBCurveSandwichSpacePoint(float _xTime, float _yTime)
{
//return Vector3.Lerp(refCurves[0].GetPoint(_xTime), refCurves[1].GetPoint(_xTime), _yTime);
return refCurves[0].GetPoint(_xTime) * (1 - _yTime) + refCurves[1].GetPoint(_xTime) * _yTime; // use a custom made lerp so that the value is not clamped between 0 and 1
}
public Vector3 GetBCurveSandwichSpaceTangent(float _xTime, float _yTime)
{
return refCurves[0].GetTangent(_xTime) * (1 - _yTime) + refCurves[1].GetTangent(_xTime) * _yTime;
}
#endregion
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e011f2cb554f96547bbfc22e5f001c17
timeCreated: 1485600090
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,165 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
using System.Collections.Generic;
namespace UnityEngine.UI.Extensions
{
[RequireComponent(typeof(RectTransform))]
[RequireComponent(typeof(Image))]
[AddComponentMenu("UI/Effects/Extensions/Curly UI Image")]
public class CUIImage : CUIGraphic
{
#region Nature
public static int SlicedImageCornerRefVertexIdx = 2;
public static int FilledImageCornerRefVertexIdx = 0;
/// <summary>
/// For sliced and filled image only.
/// </summary>
/// <param name="_type"></param>
/// <returns></returns>
public static int ImageTypeCornerRefVertexIdx(Image.Type _type)
{
if (_type == Image.Type.Sliced)
{
return SlicedImageCornerRefVertexIdx;
}
else
{
return FilledImageCornerRefVertexIdx;
}
}
#endregion
#region Description
[Tooltip("For changing the size of the corner for tiled or sliced Image")]
[HideInInspector]
[SerializeField]
public Vector2 cornerPosRatio = Vector2.one * -1; // -1 means unset value
[HideInInspector]
[SerializeField]
protected Vector2 oriCornerPosRatio = Vector2.one * -1;
public Vector2 OriCornerPosRatio
{
get
{
return oriCornerPosRatio;
}
}
#endregion
public Image UIImage
{
get
{
return (Image)uiGraphic;
}
}
#region Configurations
public override void ReportSet()
{
if (uiGraphic == null)
uiGraphic = GetComponent<Image>();
base.ReportSet();
}
protected override void modifyVertices(List<UIVertex> _verts)
{
if (!IsActive())
return;
if (UIImage.type == Image.Type.Filled)
{
Debug.LogWarning("Might not work well Radial Filled at the moment!");
}
else if (UIImage.type == Image.Type.Sliced || UIImage.type == Image.Type.Tiled)
{
// setting the starting cornerRatio
if (cornerPosRatio == Vector2.one * -1)
{
cornerPosRatio = _verts[ImageTypeCornerRefVertexIdx(UIImage.type)].position;
cornerPosRatio.x = (cornerPosRatio.x + rectTrans.pivot.x * rectTrans.rect.width) / rectTrans.rect.width;
cornerPosRatio.y = (cornerPosRatio.y + rectTrans.pivot.y * rectTrans.rect.height) / rectTrans.rect.height;
oriCornerPosRatio = cornerPosRatio;
}
// constraing the corner ratio
if (cornerPosRatio.x < 0)
{
cornerPosRatio.x = 0;
}
if (cornerPosRatio.x >= 0.5f)
{
cornerPosRatio.x = 0.5f;
}
if (cornerPosRatio.y < 0)
{
cornerPosRatio.y = 0;
}
if (cornerPosRatio.y >= 0.5f)
{
cornerPosRatio.y = 0.5f;
}
for (int index = 0; index < _verts.Count; index++)
{
var uiVertex = _verts[index];
// finding the horizontal ratio position (0.0 - 1.0) of a vertex
float horRatio = (uiVertex.position.x + rectTrans.rect.width * rectTrans.pivot.x) / rectTrans.rect.width;
float verRatio = (uiVertex.position.y + rectTrans.rect.height * rectTrans.pivot.y) / rectTrans.rect.height;
if (horRatio < oriCornerPosRatio.x)
{
horRatio = Mathf.Lerp(0, cornerPosRatio.x, horRatio / oriCornerPosRatio.x);
}
else if (horRatio > 1 - oriCornerPosRatio.x)
{
horRatio = Mathf.Lerp(1 - cornerPosRatio.x, 1, (horRatio - (1 - oriCornerPosRatio.x)) / oriCornerPosRatio.x);
}
else
{
horRatio = Mathf.Lerp(cornerPosRatio.x, 1 - cornerPosRatio.x, (horRatio - oriCornerPosRatio.x) / (1 - oriCornerPosRatio.x * 2));
}
if (verRatio < oriCornerPosRatio.y)
{
verRatio = Mathf.Lerp(0, cornerPosRatio.y, verRatio / oriCornerPosRatio.y);
}
else if (verRatio > 1 - oriCornerPosRatio.y)
{
verRatio = Mathf.Lerp(1 - cornerPosRatio.y, 1, (verRatio - (1 - oriCornerPosRatio.y)) / oriCornerPosRatio.y);
}
else
{
verRatio = Mathf.Lerp(cornerPosRatio.y, 1 - cornerPosRatio.y, (verRatio - oriCornerPosRatio.y) / (1 - oriCornerPosRatio.y * 2));
}
uiVertex.position.x = horRatio * rectTrans.rect.width - rectTrans.rect.width * rectTrans.pivot.x;
uiVertex.position.y = verRatio * rectTrans.rect.height - rectTrans.rect.height * rectTrans.pivot.y;
//uiVertex.position.z = pos.z;
_verts[index] = uiVertex;
}
}
base.modifyVertices(_verts);
}
#endregion
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 9ab7726a352b5004cbf5f8e153868637
timeCreated: 1485600090
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,24 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
namespace UnityEngine.UI.Extensions
{
[System.Serializable]
public struct Vector3_Array2D
{
[SerializeField]
public Vector3[] array;
public Vector3 this[int _idx]
{
get
{
return array[_idx];
}
set
{
array[_idx] = value;
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 2e82bd2b2afc435438d5d8d7d3459dd0
timeCreated: 1485704814
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,19 @@
/// Credit Titinious (https://github.com/Titinious)
/// Sourced from - https://github.com/Titinious/CurlyUI
namespace UnityEngine.UI.Extensions
{
[RequireComponent(typeof(RectTransform))]
[RequireComponent(typeof(Text))]
[AddComponentMenu("UI/Effects/Extensions/Curly UI Text")]
public class CUIText : CUIGraphic
{
public override void ReportSet()
{
if (uiGraphic == null)
uiGraphic = GetComponent<Text>();
base.ReportSet();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 64c40f35eca5d5d4da4eefac2a627005
timeCreated: 1485600090
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More