Esempio n. 1
0
        public override void ExecuteCommand(Command command)
        {
            var cmd = command as IMUICommand;

            switch (cmd.type)
            {
            case IMUICmdType.DrawText:
                if (ArgType <string, Vector2>(cmd))
                {
                    IMUI.DrawTextIM((string)cmd.args[0], (Vector2)cmd.args[1]);
                }
                else if (ArgType <string, Vector2, Vector2>(cmd))
                {
                    IMUI.DrawTextIM((string)cmd.args[0], (Vector2)cmd.args[1], (Vector2)cmd.args[2]);
                }
                break;

            default:
                throw null;
            }
        }
Esempio n. 2
0
        private void OnRenderObject()
        {
            var pos = rtAreaPos / UI.scaler.referenceResolution;
            var scl = rtAreaSize / UI.scaler.referenceResolution / SizeInt;
            var matrixAreaToRect = Matrix4x4.TRS(pos, Quaternion.identity, scl);

            var matrixRectToRef  = Matrix4x4.TRS(rtPos, Quaternion.identity, rtSize / SizeInt);
            var matrixRulerToRef = Matrix4x4.TRS(rtPos, Quaternion.identity, rtSize / SizeInt);

            var a = Vector2.zero;
            var b = Vector2.up * SIZE.y;
            var f = 1f / SIZE.x;

            cmds = new List <Command>();
            // grid
            for (int i = 0; i < SIZE.x; i++)
            {
                if ((i % xSpaceLineInRuler) == 0)
                {
                    a.x = b.x = i;
                    DrawLine(a, b, I.clrGrid, matrixAreaToRect);
                }
                if ((i % xSpaceTextInRuler) == 0)
                {
                    a.x = i + f * 0.5f;
                    c   = matrixRectToRef.MultiplyPoint(a);
                    c   = rulerPos + c.ToLT();
                    var cmd = IMUI.Cmd(IMUICmdType.DrawText, i.ToString(), c, Vectors.half2d);// 画字 帧号标签

                    cmds.Add(cmd);
                }
            }
            // timeline
            if (frameIdx.Between(SizeInt.x))
            {
                b.x = a.x = frameIdx;
                DrawLine(a, b, I.clrTimeLine, matrixAreaToRect);
            }
        }