Unity3D多线程UI之绘图板与调色板

先附上git地址

https://github.com/huqiang0204/huqiang.UnitySubThreadUI

可以在面板中快捷创建调色板,右键菜单->UIComposite-UIPalette

public Action ColorChanged;//当调色板中的颜色被改变时触发

public Action TemplateChanged;//当调色板基色板被改变时触发

class View

    {

        public Paint draw;//使用RawImage反射一个绘图板

        public UIPalette Palette;

        public RawImageElement color;

        public TextElement tip;

        public UISlider sizeS;

        public EventCallBack mod0;

        public EventCallBack mod1;

        public EventCallBack mod2;

    }

    View view;

    public override void Initial(ModelElement parent, object dat = null)

    {

        model = ModelManagerUI.CloneModel("baseUI", "drawing");

        base.Initial(parent, dat);

        view = model.ComponentReflection();

        view.Palette.TemplateChanged = view.Palette.ColorChanged = (o) => {

            view.draw.BrushColor = o.SelectColor;

            view.color.color = o.SelectColor;

        };

        view.sizeS.OnValueChanged = (o) => {

            float a = o.Percentage * 78;

            a+=2;

            view.draw.BrushSize = a;

            view.tip.text = "画笔尺寸:"+a.ToString();

        };

        view.mod0.Click = (o, e) => { view.draw.drawModel = Paint.DrawModel.Brush; };

        view.mod1.Click = (o, e) => { view.draw.drawModel = Paint.DrawModel.Scale; };

        view.mod2.Click = (o, e) => { view.draw.drawModel = Paint.DrawModel.Rotate; };

    }

绘图板还可注册多点触控事件,进行旋转和缩放,事件系统后面再做介绍

效果如下


你可能感兴趣的:(Unity3D多线程UI之绘图板与调色板)