// For the General Cursor we want to simply override these states
        public override void OnStateChange(CursorState state)
        {
            CursorStateData csd = CursorStates [(int)state];

            spriteR.sprite = csd.CursorSprite;
            spriteR.color  = csd.CursorColor;

            base.OnStateChange(state);
        }
        private void SetCursorWithName(string name)
        {
            var currentStateCursor = new ObjectCursorDatum();

            foreach (var cursor in CursorStateData)
            {
                if (cursor.Name == name)
                {
                    currentStateCursor = cursor;
                    break;
                }
            }

            if (currentStateCursor.Name == null)
            {
                currentStateCursor = CursorStateData.FirstOrDefault();

                if (default(ObjectCursorDatum).Equals(currentStateCursor))
                {
                    return;
                }
            }

            // De-activate all of base class cursor states.
            foreach (var cursor in CursorStateData)
            {
                if (cursor.CursorObject && cursor.CursorObject.activeSelf)
                {
                    cursor.CursorObject.SetActive(false);
                    break;
                }
            }

            // Activate newer cursor.
            currentStateCursor.CursorObject.SetActive(true);
        }
        // For the General Cursor we want to simply override these states
        public override void OnStateChange(CursorState state)
        {
            CursorStateData csd = CursorStates [(int)state];

            lightC.color = csd.CursorColor;
        }
        // For the General Cursor we want to simply override these states
        public override void OnStateChange(CursorState state)
        {
            CursorStateData csd = CursorStates [(int)state];

            meshF.mesh = csd.CursorMesh;
        }