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); }