Esempio n. 1
0
        public static List <InputDescription> GetInputs(this BehaviourTask task)
        {
            var inputs = new List <InputDescription>();

            if (task == null)
            {
                return(inputs);
            }

            var type             = task.GetType();
            var serializedFields = type.GetSerializedFieldsUpToBase();

            foreach (var f in serializedFields)
            {
                if (f.FieldType.IsSubclassOf(typeof(InputBase)))
                {
                    var inputObject = (InputBase)f.GetValue(task);
                    var definition  = f.FieldType.GetGenericTypeDefinition();
                    var description = new InputDescription(inputObject.ValueType, definition == typeof(InputValue <>), f.Name, f.Name);
                    inputs.Add(description);
                }
            }

            return(inputs);
        }
Esempio n. 2
0
        private static bool CheckForNoEditor(BehaviourTask task)
        {
            if (task == null)
            {
                return(true);
            }
            if (task.GetType().GetCustomAttribute <NoInspectorAttribute>() != null)
            {
                return(true);
            }

            return(false);
        }
        private void TaskFinished(BehaviourTask task)
        {
            if (_currentHighlights.TryGetValue(task.Index, out var highlight))
            {
                _currentHighlights.Remove(task.Index);

                var anim = ValueAnimation <float> .Create(highlight, (a, b, t) => Mathf.Lerp(a, b, Easing.OutQuad(t)));

                anim.from       = 1f;
                anim.to         = 0f;
                anim.durationMs = 500;
                anim.OnCompleted(highlight.RemoveFromHierarchy);
                anim.valueUpdated = (e, value) => e.style.opacity = value;
                anim.Start();
            }
        }
        private void TaskStarted(BehaviourTask task)
        {
            var highlight = CreateHighlight(_nodeAccessor[task.Index]);

            _currentHighlights.Add(task.Index, highlight);
        }