示例#1
0
        void Initialize()
        {
            if (initialized)
            {
                return;
            }

            var types   = new List <DropdownWidget>();
            var codes   = new List <InputFieldWidget>();
            var sizes   = new List <InputFieldWidget>();
            var actions = new List <DropdownWidget>();

            foreach (var row in rows)
            {
                var mTransform = row.transform;
                types.Add(mTransform.GetChild(0).GetComponent <DropdownWidget>());
                codes.Add(mTransform.GetChild(1).GetComponent <InputFieldWidget>());
                sizes.Add(mTransform.GetChild(2).GetComponent <InputFieldWidget>());
                actions.Add(mTransform.GetChild(3).GetComponent <DropdownWidget>());
            }

            Types   = types.AsReadOnly();
            Codes   = codes.AsReadOnly();
            Sizes   = sizes.AsReadOnly();
            Actions = actions.AsReadOnly();


            foreach (var(widget, row) in types.WithIndex())
            {
                widget.ValueChanged += (index, _) => OnTypeChanged(row, (ARMarkerType)index);
                widget.Options       = TypesStr;
                widget.Index         = (int)ARMarkerType.Unset;
            }

            foreach (var(widget, row) in codes.WithIndex())
            {
                widget.EndEdit += value => CodesEndEdit?.Invoke(row, value);
            }

            foreach (var(widget, row) in sizes.WithIndex())
            {
                widget.EndEdit += value => SizesEndEdit?.Invoke(row,
                                                                float.TryParse(value, NumberStyles.Float, BuiltIns.Culture, out float i) ? i : -1);
                widget.Placeholder = "0";
                widget.SetContentType(InputField.ContentType.DecimalNumber);
            }


            foreach (var(widget, row) in actions.WithIndex())
            {
                widget.ValueChanged += (index, _) => ActionsChanged?.Invoke(row, (ARMarkerAction)index);
                widget.Options       = ActionsStr;
                widget.Index         = 0;
            }

            initialized = true;
        }
 protected virtual void RaiseActions(int actions)
 {
     ActionsChanged?.Invoke(actions);
 }