From d414ed7f6e27c85fedcc3bc721cb48b3db702033 Mon Sep 17 00:00:00 2001 From: Patrice Vignola Date: Wed, 12 Aug 2015 13:48:16 -0400 Subject: [PATCH 1/3] - Added the links highlighting when hovering on a node and stopping the sphere rotation when hovering over it --- Assets/Scenes/BeamTest.unity | 23 ++--- Assets/Tests/Beam/FriendshipLink.cs | 20 ++++- Assets/Tests/Beam/FriendshipLink.prefab | 1 + Assets/Tests/Beam/Person.prefab | 86 ------------------- Assets/Tests/Beam/Person.prefab.meta | 8 -- Assets/Tests/{Sphere.cs => Center.cs} | 35 +++++--- .../Tests/{Sphere.cs.meta => Center.cs.meta} | 0 Assets/Tests/PersonTest.cs | 44 ++++++++++ Assets/Tests/PersonTest.cs.meta | 12 +++ .../{Sphere.prefab => PersonTest.prefab} | 14 ++- ...ere.prefab.meta => PersonTest.prefab.meta} | 0 11 files changed, 118 insertions(+), 125 deletions(-) delete mode 100644 Assets/Tests/Beam/Person.prefab delete mode 100644 Assets/Tests/Beam/Person.prefab.meta rename Assets/Tests/{Sphere.cs => Center.cs} (52%) rename Assets/Tests/{Sphere.cs.meta => Center.cs.meta} (100%) create mode 100644 Assets/Tests/PersonTest.cs create mode 100644 Assets/Tests/PersonTest.cs.meta rename Assets/Tests/{Sphere.prefab => PersonTest.prefab} (85%) rename Assets/Tests/{Sphere.prefab.meta => PersonTest.prefab.meta} (100%) diff --git a/Assets/Scenes/BeamTest.unity b/Assets/Scenes/BeamTest.unity index 65fbfcf..2487e2e 100644 --- a/Assets/Scenes/BeamTest.unity +++ b/Assets/Scenes/BeamTest.unity @@ -145,7 +145,7 @@ Camera: height: 1 near clip plane: .300000012 far clip plane: 1000 - field of view: 49 + field of view: 59 orthographic: 0 orthographic size: 5 m_Depth: -1 @@ -165,8 +165,8 @@ Transform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 61719360} - m_LocalRotation: {x: -.259112954, y: .110958092, z: -.0299803261, w: -.958983839} - m_LocalPosition: {x: 2.95000005, y: 9.18000031, z: -15.3199997} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -15.1300001} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -180,7 +180,6 @@ GameObject: m_Component: - 4: {fileID: 736567788} - 33: {fileID: 736567787} - - 135: {fileID: 736567786} - 23: {fileID: 736567785} - 114: {fileID: 736567789} m_Layer: 0 @@ -196,7 +195,7 @@ MeshRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 736567784} - m_Enabled: 1 + m_Enabled: 0 m_CastShadows: 1 m_ReceiveShadows: 1 m_Materials: @@ -214,18 +213,6 @@ MeshRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingOrder: 0 ---- !u!135 &736567786 -SphereCollider: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - m_GameObject: {fileID: 736567784} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: .5 - m_Center: {x: 0, y: 0, z: 0} --- !u!33 &736567787 MeshFilter: m_ObjectHideFlags: 0 @@ -257,7 +244,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: Link: {fileID: 11495142, guid: fab430cecad80ad4391987a06b550cb7, type: 2} - SpherePrototype: {fileID: 140654, guid: 646dd6566f9e1374caa3af8ad37c43d3, type: 2} + Person: {fileID: 11406500, guid: 646dd6566f9e1374caa3af8ad37c43d3, type: 2} PointsAmount: 400 SphereRadius: 7 rotationSpeed: .699999988 diff --git a/Assets/Tests/Beam/FriendshipLink.cs b/Assets/Tests/Beam/FriendshipLink.cs index d235180..1275422 100644 --- a/Assets/Tests/Beam/FriendshipLink.cs +++ b/Assets/Tests/Beam/FriendshipLink.cs @@ -1,8 +1,11 @@ using UnityEngine; using System.Collections; +[RequireComponent(typeof(LineRenderer))] public class FriendshipLink : MonoBehaviour { + public Color HighlightedColor = new Color(1f, 1f, 1f, 0.5f); + [SerializeField] private Transform StartPoint; @@ -21,13 +24,19 @@ public class FriendshipLink : MonoBehaviour private float LIFETIME_RATIO = 0.025f; + private Renderer _renderer; + private Color _defaultColor; + void Awake() { + // Set the importance (weight) of the link here BeamLine.SetWidth(0.2f, 0.2f); - Renderer lineRenderer = BeamLine.GetComponent(); + _renderer = BeamLine.GetComponent(); - lineRenderer.material = Instantiate(lineRenderer.material); + _renderer.material = Instantiate(_renderer.material); + + _defaultColor = _renderer.material.GetColor("_TintColor"); //Activate(false); } @@ -69,4 +78,11 @@ public class FriendshipLink : MonoBehaviour StartObject = origin.transform; EndObject = destination.transform; } + + public void Highlight(bool state, float weight) + { + // For now, the weight does nothing but it should eventually influence the intensity and size of the link + + _renderer.material.SetColor("_TintColor", state ? HighlightedColor : _defaultColor); + } } diff --git a/Assets/Tests/Beam/FriendshipLink.prefab b/Assets/Tests/Beam/FriendshipLink.prefab index 6c30efa..d3c567f 100644 --- a/Assets/Tests/Beam/FriendshipLink.prefab +++ b/Assets/Tests/Beam/FriendshipLink.prefab @@ -154,6 +154,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c495d00d780bd3d49866ec60f5efbf66, type: 3} m_Name: m_EditorClassIdentifier: + HighlightedColor: {r: 1, g: 1, b: 1, a: .501960814} StartPoint: {fileID: 495136} EndPoint: {fileID: 495134} BeamLine: {fileID: 12095142} diff --git a/Assets/Tests/Beam/Person.prefab b/Assets/Tests/Beam/Person.prefab deleted file mode 100644 index e7cf522..0000000 --- a/Assets/Tests/Beam/Person.prefab +++ /dev/null @@ -1,86 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &106018 -GameObject: - m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - serializedVersion: 4 - m_Component: - - 4: {fileID: 456258} - - 33: {fileID: 3369818} - - 64: {fileID: 6498216} - - 23: {fileID: 2339886} - m_Layer: 0 - m_Name: Person - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &456258 -Transform: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 106018} - m_LocalRotation: {x: .70710659, y: 0, z: 0, w: -.707106948} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: .100000001, y: .100000001, z: .100000001} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 0 ---- !u!23 &2339886 -MeshRenderer: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 106018} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_SubsetIndices: - m_StaticBatchRoot: {fileID: 0} - m_UseLightProbes: 1 - m_ReflectionProbeUsage: 1 - m_ProbeAnchor: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 1 - m_ImportantGI: 0 - m_AutoUVMaxDistance: .5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingOrder: 0 ---- !u!33 &3369818 -MeshFilter: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 106018} - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!64 &6498216 -MeshCollider: - m_ObjectHideFlags: 1 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 100100000} - m_GameObject: {fileID: 106018} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Convex: 0 - m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1001 &100100000 -Prefab: - m_ObjectHideFlags: 1 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: [] - m_RemovedComponents: [] - m_ParentPrefab: {fileID: 0} - m_RootGameObject: {fileID: 106018} - m_IsPrefabParent: 1 diff --git a/Assets/Tests/Beam/Person.prefab.meta b/Assets/Tests/Beam/Person.prefab.meta deleted file mode 100644 index 4b4ddc9..0000000 --- a/Assets/Tests/Beam/Person.prefab.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: c5b66487a8909dc42a46e73c0b340df0 -timeCreated: 1439311712 -licenseType: Free -NativeFormatImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Tests/Sphere.cs b/Assets/Tests/Center.cs similarity index 52% rename from Assets/Tests/Sphere.cs rename to Assets/Tests/Center.cs index 667ecd9..eb086e9 100644 --- a/Assets/Tests/Sphere.cs +++ b/Assets/Tests/Center.cs @@ -1,15 +1,16 @@ using UnityEngine; using System.Collections; +using System.Collections.Generic; -public class Sphere : MonoBehaviour +public class Center : MonoBehaviour { public FriendshipLink Link; - public GameObject SpherePrototype; + public PersonTest Person; public int PointsAmount = 50; public float SphereRadius = 1f; public float rotationSpeed = 0.7f; - private GameObject[] nodes; + private PersonTest[] people; void Awake() { @@ -19,7 +20,17 @@ public class Sphere : MonoBehaviour void Update() { - transform.Rotate(Vector3.one * Time.deltaTime * rotationSpeed); + Vector3 screenMousePos = Input.mousePosition; + + screenMousePos.z = transform.position.z - Camera.main.transform.position.z; + + Vector3 worldMousePos = Camera.main.ScreenToWorldPoint(screenMousePos); + + // If the world position of the mouse is greater than the radius of the sphere, we are outside + if (Mathf.Sqrt(worldMousePos.x * worldMousePos.x + worldMousePos.y * worldMousePos.y) > SphereRadius + 1f) + { + transform.Rotate(Vector3.one * Time.deltaTime * rotationSpeed); + } } private void InstantiateNodes() @@ -30,7 +41,7 @@ public class Sphere : MonoBehaviour * dont end up drawing clusters of points and the spirals are way * less visible. */ - nodes = new GameObject[PointsAmount]; + people = new PersonTest[PointsAmount]; float goldenAngle = Mathf.PI * (3 - Mathf.Sqrt(5)); @@ -45,11 +56,11 @@ public class Sphere : MonoBehaviour float x = Mathf.Sin(longitude) * r; float y = Mathf.Cos(longitude) * r; - GameObject simon = Instantiate(SpherePrototype, new Vector3(x, y, z), Quaternion.identity) as GameObject; + PersonTest simon = Instantiate(Person, new Vector3(x, y, z), Quaternion.identity) as PersonTest; simon.transform.parent = this.transform; - nodes[i] = simon; + people[i] = simon; z -= zDistance; longitude += goldenAngle; @@ -58,13 +69,17 @@ public class Sphere : MonoBehaviour private void AssignLinks() { - for (int i = 0; i < nodes.Length / 4; i++) + for (int i = 0; i < people.Length / 4; i++) { FriendshipLink link = Instantiate(Link) as FriendshipLink; - int destinationIndex = Random.Range(nodes.Length / 2, nodes.Length - 1); + int destinationIndex = Random.Range(people.Length / 2, people.Length - 1); - link.AttachToObjects(nodes[i], nodes[destinationIndex]); + link.AttachToObjects(people[i].gameObject, people[destinationIndex].gameObject); + + // Temporary stuff, for testing + people[i].AddLink(link); + people[destinationIndex].AddLink(link); } } } diff --git a/Assets/Tests/Sphere.cs.meta b/Assets/Tests/Center.cs.meta similarity index 100% rename from Assets/Tests/Sphere.cs.meta rename to Assets/Tests/Center.cs.meta diff --git a/Assets/Tests/PersonTest.cs b/Assets/Tests/PersonTest.cs new file mode 100644 index 0000000..9e5d4a9 --- /dev/null +++ b/Assets/Tests/PersonTest.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +[RequireComponent(typeof(Collider))] +public class PersonTest : MonoBehaviour +{ + // Temporary, for test + private List _links; + private bool _highlighted = false; + + void Awake() + { + _links = new List(); + } + + public void AddLink(FriendshipLink link) + { + _links.Add(link); + } + + void OnMouseOver() + { + if (!_highlighted) + { + _highlighted = true; + + foreach (FriendshipLink link in _links) + { + link.Highlight(true, 1f); + } + } + } + + void OnMouseExit() + { + _highlighted = false; + + foreach (FriendshipLink link in _links) + { + link.Highlight(false, 1f); + } + } +} diff --git a/Assets/Tests/PersonTest.cs.meta b/Assets/Tests/PersonTest.cs.meta new file mode 100644 index 0000000..81c5c69 --- /dev/null +++ b/Assets/Tests/PersonTest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 91655186257590a4297df8939c1a2256 +timeCreated: 1439395841 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/Sphere.prefab b/Assets/Tests/PersonTest.prefab similarity index 85% rename from Assets/Tests/Sphere.prefab rename to Assets/Tests/PersonTest.prefab index 8734b65..4aadda6 100644 --- a/Assets/Tests/Sphere.prefab +++ b/Assets/Tests/PersonTest.prefab @@ -11,8 +11,9 @@ GameObject: - 33: {fileID: 3385696} - 135: {fileID: 13525706} - 23: {fileID: 2372112} + - 114: {fileID: 11406500} m_Layer: 0 - m_Name: Sphere + m_Name: PersonTest m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -61,6 +62,17 @@ MeshFilter: m_PrefabInternal: {fileID: 100100000} m_GameObject: {fileID: 140654} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &11406500 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 140654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 91655186257590a4297df8939c1a2256, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!135 &13525706 SphereCollider: m_ObjectHideFlags: 1 diff --git a/Assets/Tests/Sphere.prefab.meta b/Assets/Tests/PersonTest.prefab.meta similarity index 100% rename from Assets/Tests/Sphere.prefab.meta rename to Assets/Tests/PersonTest.prefab.meta From 23a362b6258615e01c49977730964fa86d9b6597 Mon Sep 17 00:00:00 2001 From: Patrice Vignola Date: Wed, 12 Aug 2015 14:38:53 -0400 Subject: [PATCH 2/3] - Added the UI placeholders --- .../Scenes/{BeamTest.unity => Gameplay.unity} | 294 +++++++++++++++++- ...eamTest.unity.meta => Gameplay.unity.meta} | 0 2 files changed, 290 insertions(+), 4 deletions(-) rename Assets/Scenes/{BeamTest.unity => Gameplay.unity} (50%) rename Assets/Scenes/{BeamTest.unity.meta => Gameplay.unity.meta} (100%) diff --git a/Assets/Scenes/BeamTest.unity b/Assets/Scenes/Gameplay.unity similarity index 50% rename from Assets/Scenes/BeamTest.unity rename to Assets/Scenes/Gameplay.unity index 2487e2e..e7604a7 100644 --- a/Assets/Scenes/BeamTest.unity +++ b/Assets/Scenes/Gameplay.unity @@ -135,14 +135,14 @@ Camera: m_GameObject: {fileID: 61719360} m_Enabled: 1 serializedVersion: 2 - m_ClearFlags: 1 + m_ClearFlags: 2 m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438} m_NormalizedViewPortRect: serializedVersion: 2 x: 0 y: 0 - width: 1 - height: 1 + width: .800000012 + height: .800000012 near clip plane: .300000012 far clip plane: 1000 field of view: 59 @@ -171,6 +171,128 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 +--- !u!1 &523974148 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 523974151} + - 222: {fileID: 523974150} + - 114: {fileID: 523974149} + m_Layer: 5 + m_Name: RightUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &523974149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 523974148} + 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: .39199999} + 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 &523974150 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 523974148} +--- !u!224 &523974151 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 523974148} + 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: 1057734538} + m_RootOrder: 1 + m_AnchorMin: {x: .800000012, y: 0} + m_AnchorMax: {x: 1, y: .800000012} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!1 &534364716 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 534364717} + - 222: {fileID: 534364719} + - 114: {fileID: 534364718} + m_Layer: 5 + m_Name: TopUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &534364717 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534364716} + 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: 1057734538} + m_RootOrder: 0 + m_AnchorMin: {x: 0, y: .800000012} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: .5, y: .5} +--- !u!114 &534364718 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534364716} + 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: .39199999} + 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 &534364719 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 534364716} --- !u!1 &736567784 GameObject: m_ObjectHideFlags: 0 @@ -227,7 +349,7 @@ Transform: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 736567784} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 5.96046448e-08, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -248,6 +370,97 @@ MonoBehaviour: PointsAmount: 400 SphereRadius: 7 rotationSpeed: .699999988 +--- !u!1 &1057734534 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1057734538} + - 223: {fileID: 1057734537} + - 114: {fileID: 1057734536} + - 114: {fileID: 1057734535} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1057734535 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1057734534} + 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 &1057734536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1057734534} + 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 &1057734537 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1057734534} + m_Enabled: 1 + serializedVersion: 2 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!224 &1057734538 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1057734534} + 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: 534364717} + - {fileID: 523974151} + m_Father: {fileID: 0} + m_RootOrder: 3 + 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!1 &1126063559 GameObject: m_ObjectHideFlags: 0 @@ -308,3 +521,76 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 +--- !u!1 &1999982083 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1999982087} + - 114: {fileID: 1999982086} + - 114: {fileID: 1999982085} + - 114: {fileID: 1999982084} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1999982084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1999982083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowActivationOnStandalone: 0 +--- !u!114 &1999982085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1999982083} + 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_AllowActivationOnMobileDevice: 0 +--- !u!114 &1999982086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1999982083} + 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 &1999982087 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1999982083} + 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: 4 diff --git a/Assets/Scenes/BeamTest.unity.meta b/Assets/Scenes/Gameplay.unity.meta similarity index 100% rename from Assets/Scenes/BeamTest.unity.meta rename to Assets/Scenes/Gameplay.unity.meta From 18e1ec4190cfd409870769d726e727742d113fc0 Mon Sep 17 00:00:00 2001 From: Patrice Vignola Date: Wed, 12 Aug 2015 15:16:14 -0400 Subject: [PATCH 3/3] - Fixed a border glitch on the link image --- Assets/Tests/Beam/Materials/laserPic.mat | 2 +- Assets/Tests/Beam/laserPic.png | Bin 18388 -> 13172 bytes ProjectSettings/EditorBuildSettings.asset | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Assets/Tests/Beam/Materials/laserPic.mat b/Assets/Tests/Beam/Materials/laserPic.mat index ca460d8..fccb428 100644 --- a/Assets/Tests/Beam/Materials/laserPic.mat +++ b/Assets/Tests/Beam/Materials/laserPic.mat @@ -19,7 +19,7 @@ Material: name: _MainTex second: m_Texture: {fileID: 2800000, guid: dce27f2c9adab1144824c9b2040f18d5, type: 3} - m_Scale: {x: 24.6399994, y: 1} + m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} data: first: diff --git a/Assets/Tests/Beam/laserPic.png b/Assets/Tests/Beam/laserPic.png index 439dc544be713f6aaea2c0b003b6245d81ac26b5..23886c70a7cef0d208825e7b5530f10952b00be6 100644 GIT binary patch literal 13172 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 MOkT7~*dXwK0ha@-DF6Tf literal 18388 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