public override void Create(UTinyEntityView view, SpriteRenderer spriteRenderer)
        {
            var sr = new UTinyObject(Registry, GetMainTinyType());

            SyncRenderer(spriteRenderer, sr);

            UTinyObject srt = null;

            if (spriteRenderer.drawMode != SpriteDrawMode.Simple)
            {
                srt = new UTinyObject(Registry, Registry.GetSprite2DRendererOptionsType());
                SyncRendererOptions(spriteRenderer, srt);
            }

            var entity           = view.EntityRef.Dereference(Registry);
            var sprite2DRenderer = entity.GetOrAddComponent(GetMainTinyType());

            sprite2DRenderer.CopyFrom(sr);
            BindingsHelper.RunBindings(entity, sprite2DRenderer);

            if (null != srt)
            {
                var rendererOptions = entity.GetOrAddComponent(Registry.GetSprite2DRendererOptionsType());
                rendererOptions.CopyFrom(srt);
                BindingsHelper.RunBindings(entity, rendererOptions);
            }
        }
        public sealed override void Create(UTinyEntityView view, Transform t)
        {
            UTinyEntity.Reference parentRef = UTinyEntity.Reference.None;
            if (t.parent)
            {
                parentRef = t.parent.GetComponent <UTinyEntityView>()?.EntityRef ?? UTinyEntity.Reference.None;
            }

            var graph = EntityGroupManager.GetSceneGraph(
                parentRef.Equals(UTinyEntity.Reference.None) ?
                EntityGroupManager.ActiveEntityGroup
                                        : (UTinyEntityGroup.Reference)parentRef.Dereference(Registry).EntityGroup);

            if (null == graph)
            {
                return;
            }

            var transform = new UTinyObject(Registry, GetMainTinyType());

            SyncTransform(t, transform);

            var entityNode = graph.CreateFromExisting(t, t.parent);
            var entity     = entityNode.Entity.Dereference(Registry);

            var tiny = entity.GetOrAddComponent(GetMainTinyType());

            tiny.CopyFrom(transform);

            BindingsHelper.RunBindings(entity, tiny);
        }
コード例 #3
0
        private static void UpdateMeshes()
        {
            var repaint = false;
            var context = UTinyEditorApplication.EditorContext;

            if (null == context)
            {
                return;
            }

            // We want to make sure that all the renderers are "ordered" by hierarchy oder.
            var currentQueue = 3000;
            var scene        = UTinyEditorApplication.EntityGroupManager.UnityScratchPad;

            if (scene.isLoaded && scene.IsValid())
            {
                foreach (var go in scene.GetRootGameObjects())
                {
                    foreach (var renderer in go.GetComponentsInChildren <Renderer>())
                    {
                        var r = currentQueue;

                        if (renderer.gameObject.GetComponent <TextMesh>())
                        {
                            r += 2000;
                        }

                        repaint |= renderer.sharedMaterial.renderQueue != r;
                        renderer.sharedMaterial.renderQueue = r;

                        currentQueue++;

                        var view = go.GetComponent <UTinyEntityView>();
                        if (!view)
                        {
                            continue;
                        }

                        var entity = view.EntityRef.Dereference(context.Registry);

                        if (null != entity)
                        {
                            entity.View = view;
                            // Update mesh information.
                            BindingsHelper.RunBindings(entity, entity.GetComponent(context.Registry.GetSprite2DRendererType()));
                        }
                    }
                }
            }

            if (repaint)
            {
                SceneView.RepaintAll();
            }
        }
        public override void Create(UTinyEntityView view, Camera @from)
        {
            var camera = new UTinyObject(Registry, GetMainTinyType());

            SyncCamera(from, camera);

            var entity = view.EntityRef.Dereference(Registry);
            var tiny   = entity.GetOrAddComponent(GetMainTinyType());

            tiny.CopyFrom(camera);
            BindingsHelper.RunBindings(entity, tiny);
        }
コード例 #5
0
        public override void Create(UTinyEntityView view, BoxCollider2D from)
        {
            var collider = new UTinyObject(Registry, GetMainTinyType());

            SyncBoxCollider2D(from, collider);

            var entity       = view.EntityRef.Dereference(Registry);
            var rectCollider = entity.GetOrAddComponent(GetMainTinyType());

            rectCollider.CopyFrom(collider);
            BindingsHelper.RunBindings(entity, rectCollider);
        }
        public override void Create(UTinyEntityView view, TextMesh from)
        {
            var tr = new UTinyObject(Registry, GetMainTinyType());

            SyncTextMesh(from, tr);

            var entity       = view.EntityRef.Dereference(Registry);
            var textRenderer = entity.GetOrAddComponent(GetMainTinyType());

            textRenderer.CopyFrom(tr);
            BindingsHelper.RunBindings(entity, textRenderer);
        }