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

先附上git地址

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

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

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

public Action<UIPalette> 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>();

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

    }

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

效果如下


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容