Esempio n. 1
0
		/*--------------------------------------------------------------------------------------------*/
		internal void UpdateWithCursor(CursorState pCursor) {
			bool allowSelect = (pCursor.IsInputAvailable && DisplayStrength > 0);
			Vector3? cursorPos = (allowSelect ? pCursor.Position : (Vector3?)null);

			NearestSegment = null;

			foreach ( SegmentState seg in vSegments ) {
				seg.UpdateWithCursor(cursorPos);

				if ( !allowSelect ) {
					continue;
				}

				if ( NearestSegment == null ) {
					NearestSegment = seg;
					continue;
				}

				if ( seg.HighlightDistance < NearestSegment.HighlightDistance ) {
					NearestSegment = seg;
				}
			}

			foreach ( SegmentState seg in vSegments ) {
				if ( seg.SetAsNearestSegment(seg == NearestSegment) ) {
					break; //stop loop upon actual selection because the segment list can change
				}
			}
		}
		////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		public MenuState(IInputProvider pInputProv, NavRoot pNavRoot,InteractionSettings pSettings){
			vInputProv = pInputProv;
			vSettings = pSettings;

			Arc = new ArcState(pNavRoot, vSettings);
			Cursor = new CursorState(vSettings);

			OnSideChange += (() => {});
		}
Esempio n. 3
0
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public MenuState(IInputProvider pInputProv, NavRoot pNavRoot, InteractionSettings pSettings)
        {
            vInputProv = pInputProv;
            vSettings  = pSettings;

            Arc    = new ArcState(pNavRoot, vSettings);
            Cursor = new CursorState(vSettings);

            OnSideChange += (() => {});
        }
		////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		public void Build(ArcState pArcState, CursorState pCursorState, CursorSettings pSettings) {
			vArcState = pArcState;
			vCursorState = pCursorState;
			vSettings = pSettings;

			vRingObj = new GameObject("Ring");
			vRingObj.transform.SetParent(gameObject.transform, false);
			vRingObj.AddComponent<MeshRenderer>();
			vRingObj.AddComponent<MeshFilter>();
			vRingObj.renderer.sharedMaterial = new Material(Shader.Find("Unlit/AlphaSelfIllumTop"));

			vRingMesh = vRingObj.GetComponent<MeshFilter>().mesh;
		}
Esempio n. 5
0
		////////////////////////////////////////////////////////////////////////////////////////////////
		/*--------------------------------------------------------------------------------------------*/
		internal void Build(ArcState pArcState, CursorState pCursorState, ICustomCursor pCustom, 
																		Transform pCameraTransform) {
			vArcState = pArcState;
			vCursorState = pCursorState;
			vCameraTx = pCameraTransform;

			////
			
			Type rendType = pCustom.GetCursorRenderer();

			vRendererHold = new GameObject("RendererHold");
			vRendererHold.transform.SetParent(gameObject.transform, false);

			vRendererObj = new GameObject("Renderer");
			vRendererObj.transform.SetParent(vRendererHold.transform, false);

			vRenderer = (IUiCursorRenderer)vRendererObj.AddComponent(rendType);
			vRenderer.Build(vArcState, vCursorState, pCustom.GetCursorSettings());
		}
Esempio n. 6
0
        /*--------------------------------------------------------------------------------------------*/
        internal void UpdateWithCursor(CursorState pCursor)
        {
            bool    allowSelect = (pCursor.IsActive && DisplayStrength > 0);
            Vector3?cursorPos   = (pCursor.IsActive ? pCursor.Position : (Vector3?)null);

            NearestSegment = null;

            foreach (ArcSegmentState seg in vSegments)
            {
                seg.UpdateWithCursor(cursorPos);

                if (!allowSelect)
                {
                    continue;
                }

                if (NearestSegment == null)
                {
                    NearestSegment = seg;
                    continue;
                }

                if (seg.HighlightDistance < NearestSegment.HighlightDistance)
                {
                    NearestSegment = seg;
                }
            }

            foreach (ArcSegmentState seg in vSegments)
            {
                if (seg.SetAsNearestSegment(seg == NearestSegment))
                {
                    break;
                }
            }
        }
Esempio n. 7
0
        /*--------------------------------------------------------------------------------------------*/
        internal void UpdateWithCursor(CursorState pCursor)
        {
            bool    allowSelect = (pCursor.IsInputAvailable && DisplayStrength > 0);
            Vector3?cursorPos   = (allowSelect ? pCursor.Position : (Vector3?)null);

            NearestSegment = null;

            foreach (SegmentState seg in vSegments)
            {
                seg.UpdateWithCursor(cursorPos);

                if (!allowSelect)
                {
                    continue;
                }

                if (NearestSegment == null)
                {
                    NearestSegment = seg;
                    continue;
                }

                if (seg.HighlightDistance < NearestSegment.HighlightDistance)
                {
                    NearestSegment = seg;
                }
            }

            foreach (SegmentState seg in vSegments)
            {
                if (seg.SetAsNearestSegment(seg == NearestSegment))
                {
                    break;                     //stop loop upon actual selection because the segment list can change
                }
            }
        }