Пример #1
0
        private void Create(string type, GameObject parent, GameObject prefab)
        {
            var obj = parent.AddChild(prefab);

            obj.name = prefab.name + " (Pool)";
            obj.SetActive(false);

            pools[type].Enqueue(obj);
        }
Пример #2
0
        public void MayChainAddChildGameObject()
        {
            var parent = new GameObject();
            var child  = new GameObject();
            var child2 = new GameObject();

            Assert.AreSame(parent.AddChild(child)
                           .AddChild(child2), parent);
        }
Пример #3
0
        /// <summary>
        ///     Given a GameObject <paramref name="gameObjectForWhichToFindChild" />, return its child who has the name
        ///     <paramref name="childName" /> if it exists, or a brand new GameObject parented to it with that name.
        /// </summary>
        /// <param name="gameObjectForWhichToFindChild">
        ///     The GameObject whose child we are attempting to find, or create if no such
        ///     child exists.
        /// </param>
        /// <param name="childName">The name of the child to find and return, or create and return</param>
        /// <returns>
        ///     The first child object of <paramref name="gameObjectForWhichToFindChild" /> with the name
        ///     <paramref name="childName" />, or a brand new child object with that name if it does not already exist.
        /// </returns>
        public static GameObject FindChildCreateIfNull(this GameObject gameObjectForWhichToFindChild, string childName)
        {
            GameObject childObject = gameObjectForWhichToFindChild.FindFirstChild(childName);

            if (childObject == null)
            {
                childObject = gameObjectForWhichToFindChild.AddChild(new GameObject(childName));
            }
            return(childObject);
        }
Пример #4
0
        /// Add a new resource prefab instance to the current scene and return it
        /// @param factory The factory type.
        /// @param parent The parent object for the new object.
        /// @return A new world instance of factory.
        public static Option <GameObject> Spawn(GameObject factory, GameObject parent)
        {
            var rtn = Spawn(factory);

            if (rtn)
            {
                parent.AddChild(rtn.Unwrap());
            }
            return(rtn);
        }
Пример #5
0
        private static GameObject buildPlayer()
        {
            GameObject musicObj = new GameObject("music")
            {
                WorldPosition = new Point(Display.ScreenCenterX, 50)
            };

            musicObj.AddComponent(new SongPlayer());

            GameObject songTextObj = new GameObject("songtext")
            {
                Layer = .9f, LocalPosition = new Point(0, -10)
            };

            songTextObj.AddComponent(new TextRenderer()
            {
                Text = "", Font = Fonts.Console, Color = Palette.White, Justification = Justifications.Center
            });
            musicObj.AddChild(songTextObj);

            GameObject flavorTextObj = new GameObject("flavortext")
            {
                Layer = .9f, LocalPosition = new Point(2, 0)
            };

            flavorTextObj.AddComponent(new TextRenderer()
            {
                Text = "from the album:", Font = Fonts.Console, Color = Palette.LightGray, Justification = Justifications.Center
            });
            musicObj.AddChild(flavorTextObj);

            GameObject folderTextObj = new GameObject("albumtext")
            {
                Layer = .9f, LocalPosition = new Point(0, 10)
            };

            folderTextObj.AddComponent(new TextRenderer()
            {
                Text = "", Font = Fonts.Console, Color = Palette.LightGray, Justification = Justifications.Center
            });
            musicObj.AddChild(folderTextObj);
            return(musicObj);
        }
Пример #6
0
 public EditorModel()
 {
     var root = new GameObject();
     root.Model = new GameObjectTreeModel();
     _project = Plugins.Container.ResolveNamed<GameObject>("Project");
     root.AddChild(_project);
     SelectedGameObject = _project;
     RefreshGameObjectList();
     RefreshGameObjectInspectors();
 }
Пример #7
0
        public void AddsChildObjectWithComponents()
        {
            var parent = new GameObject();
            var child  = parent.AddChild(typeof(MockComponent), typeof(AnotherMockComponent));

            var all = child.GetAllComponentsOrInterfaces <IMockComponent>();

            Assert.AreEqual(2, all.Count());
            Assert.AreEqual(parent.transform, child.transform.parent);
        }
Пример #8
0
    GameObject build_voxtools_flyout()
    {
        GameObject popupGO = GameObject.Instantiate(Resources.Load <GameObject>("BasicToolMenu"));

        popupGO.SetName("VoxelTools");

        CCUIBuilder.AddBasicStartToolButton(popupGO, "Solidify", GenerateClosedMeshTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Shell", MeshShellTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "VoxWrap", MeshWrapTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "VoxBoolean", MeshVoxelBooleanTool.Identifier, multi_selection);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "VoxBlend", MeshVoxelBlendTool.Identifier, multi_selection);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Morphology", MeshMorphologyTool.Identifier);


        Canvas.AddChild(popupGO, false);
        UnityUIUtil.PositionRelative2D(popupGO, BoxPosition.TopLeft, Panel, BoxPosition.TopRight, Vector2f.Zero);

        return(popupGO);
    }
Пример #9
0
    GameObject build_heal_flyout()
    {
        GameObject popupGO = GameObject.Instantiate(Resources.Load <GameObject>("BasicToolMenu"));

        popupGO.SetName("HealTools");

        CCUIBuilder.AddBasicStartToolButton(popupGO, "AutoRepair", MeshAutoRepairTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Solidify", GenerateClosedMeshTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Weld Edges", WeldEdgesTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Fix Normals", RepairOrientationTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Fill Holes", FillHolesTool.Identifier, single_selection_or_one_obj);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Remove Hidden", RemoveHiddenFacesTool.Identifier);
        CCUIBuilder.AddBasicStartToolButton(popupGO, "Edit Mesh", MeshEditorTool.Identifier, single_selection_or_one_obj);

        Canvas.AddChild(popupGO, false);
        UnityUIUtil.PositionRelative2D(popupGO, BoxPosition.TopLeft, Panel, BoxPosition.TopRight, Vector2f.Zero);

        return(popupGO);
    }
Пример #10
0
        public GameObject CreateGameScene()
        {
            GameObject player = CreatePlayer();

            GameObject background = CreateBackground();

            player.AddChild(background);

            GameObject info = CreateInfoObject();

            player.AddChild(info);

            var weapons = info.FindAttValue <List <Weapon> >(GameAttr.WEAPONINFO);

            GameObject canon = CreateCanon(new Transform(318, 263, 0, 2, 2, 37), weapons.FirstOrDefault());

            player.AddChild(canon);
            return(player);
        }
Пример #11
0
        public void WhenAChildIsProvidedANewParentTheChildIsRemovedFromTheOldParent()
        {
            var oldParent = new GameObject();
            var child     = new GameObject();

            oldParent.AddChild(child);
            var newParent = new GameObject();

            child.SetParent(newParent);
            Assert.IsFalse(oldParent.IsAncestorOf(child));
        }
Пример #12
0
        public void IsAncestorOfIsRecursive()
        {
            var parent = new GameObject();
            var child  = new GameObject();

            parent.AddChild(child);
            var grandChild = new GameObject();

            child.AddChild(grandChild);
            Assert.IsTrue(parent.IsAncestorOf(grandChild));
        }
Пример #13
0
        public void CanAddChildGameObject()
        {
            var parent = new GameObject();
            var child  = new GameObject();

            parent.AddChild(child);
            var hasDescendant = parent.IsAncestorOf(child);

            Assert.IsTrue(hasDescendant);
            Assert.AreSame(child.Parent, parent);
        }
Пример #14
0
    Tile GenerateTile(int x, int y)
    {
        Tile tile = tilesContainer.AddChild <Tile>();

        tile.name     = string.Format("Tile ({0},{1})", x, y);
        tile.Type     = Tile.TileType.Wall;
        tile.Sprite   = tileSprite;
        tile.Position = new Vector2(x * 100, y * 100);
        tile.Size     = new Vector2(100, 100);
        return(tile);
    }
Пример #15
0
    public static void Show_NoForce(GameObject parentCanvas, string url, NewVersionCheck versionCheck)
    {
        GameObject dialog = GameObject.Instantiate <GameObject>(Resources.Load <GameObject>("UpdateAvailableDialog"));

        parentCanvas.AddChild(dialog, false);

        var component = dialog.GetComponent <UpdateAvailableDialog>();

        component.VersionCheck = versionCheck;
        component.DownloadURL  = url;
    }
Пример #16
0
        public GameObject Show(string toastCaption, string toastMessage, int displayDurationInMs)
        {
            var newToast     = ResourcesV2.LoadPrefab("Messages/Toast");
            var toastUiElems = newToast.GetLinkMap();

            InitText(toastUiElems, "Caption", toastCaption);
            InitText(toastUiElems, "Message", toastMessage);
            newToast.GetComponent <MonoBehaviour>().ExecuteDelayed(() => newToast.Destroy(), displayDurationInMs);
            toastsContainer.AddChild(newToast);
            return(newToast);
        }
Пример #17
0
        private static GameObject AddViewToMainViewStack(Func <GameObject> viewInViewStackCreator)
        {
            GameObject mainViewStack   = ViewStackHelper.MainViewStack().gameObject;
            GameObject viewInViewStack = viewInViewStackCreator();

            mainViewStack.AddChild(viewInViewStack);
            viewInViewStack.name += " " + mainViewStack.GetChildCount();
            viewInViewStack.GetOrAddComponent <RectTransform>().SetAnchorsStretchStretch();
            SelectInHirarchyUi(viewInViewStack);
            return(viewInViewStack);
        }
Пример #18
0
        private void InitMapObjects(SpriteSheet tileset, GameObject map)
        {
            foreach (var item in _map.Objects)
            {
                //if (!item.mapObject.Properties.TryGetValue("sprite", out var tmpProp))
                //    continue;
                //var spriteName = tmpProp.ToString();
                //if (string.IsNullOrWhiteSpace(spriteName))
                //    continue;

                if (!item.mapObject.TryGetProperty <string>("sprite", out var spriteName))
                {
                    continue;
                }

                var sprite = tileset.GetSprite(spriteName);
                if (null == sprite)
                {
                    continue;
                }

                var entity = new GameObject(this);

                var transform = entity.Components.Add <TransformComponent>();
                transform.Local.Position = _mapRenderer.GetTilePos(item.tile);

                var renderer = entity.Components.Add <SpriteRenderComponent>();
                renderer.Sprite = sprite;

                var bbox = entity.Components.Add <BoundingBoxComponent>();
                bbox.SetSize(sprite.Bounds.Size);
                _collisionService.RegisterCollider(bbox);

                switch (item.mapObject.Type.Group)
                {
                case MapObjectType.Groups.Collectibles:
                    bbox.IsStatic = true;

                    renderer.LayerIndex = (int)RenderLayers.Items;
                    var brain = entity.Components.Add <GroundItemBrainComponent>();
                    brain.Item = item.mapObject;
                    break;

                case MapObjectType.Groups.Enemies:
                    renderer.LayerIndex = (int)RenderLayers.Enemies;
                    entity.Components.Add <PathFollowerComponent>();
                    entity.Components.Add <EnemyBrainComponent>();
                    break;
                }

                map.AddChild(entity);
            }
        }
Пример #19
0
        public void CanRemoveChildGameObject()
        {
            var parent = new GameObject();
            var child  = new GameObject();

            parent.AddChild(child);
            parent.RemoveChild(child);
            var hasDescendant = parent.IsAncestorOf(child);

            Assert.IsFalse(hasDescendant);
            Assert.IsNull(child.Parent);
        }
Пример #20
0
    /*public void LoadLevel(string name)
     * {
     *      //Create
     *      var prefab = Resources.Load<GameObject>("Levels/" + name);
     *      if(prefab == null)
     *              Debug.LogError("Unable to load level:" + name);
     *
     *      //Load
     *      LoadLevel(prefab);
     * }*/

    public void ReturnToMainMenu()
    {
        //Cleanup
        Cleanup();
        playButton.SetActive(false);

        //Destroy level
        editMode.enabled     = false;
        simulateMode.enabled = false;
        if (level != null)
        {
            GameObject.Destroy(level.gameObject);
        }

        //Create main menu
        var obj = GameObject.Instantiate(mainMenu);

        cleanupBeforeNextLevel.Add(obj);
        canvas.AddChild(obj);
        obj.transform.SetSiblingIndex(0);
    }
Пример #21
0
        private static T CreateUIListView <T>() where T : UIListView
        {
            GameObject child = CreateUIRectTransform(300, 300);

            if (child == null)
            {
                return(null);
            }

            T listView = child.AddComponent <T>();

            child.name  = listView.GetType().Name;
            child.layer = 5;

            GameObject viewport = new GameObject();

            child.AddChild(viewport);

            viewport.name = "Viewport";

            RectTransform viewportRectTransform = viewport.AddComponent <RectTransform>();

            viewportRectTransform.anchorMin = Vector2.zero;
            viewportRectTransform.anchorMax = Vector2.one;
            viewportRectTransform.pivot     = 0.5f * Vector2.one;
            viewportRectTransform.SetMiddleWidth(300);
            viewportRectTransform.SetCenterHeight(300);

            listView.viewport = viewportRectTransform;
            viewport.AddComponent <Mask>();
            viewport.AddComponent <Image>();


            GameObject content = new GameObject();

            viewport.AddChild(content);

            content.name = "Content";

            RectTransform contentRectTransform = content.AddComponent <RectTransform>();

            contentRectTransform.anchorMin = Vector2.zero;
            contentRectTransform.anchorMax = Vector2.one;
            contentRectTransform.pivot     = 0.5f * Vector2.one;

            contentRectTransform.SetMiddleWidth(300);
            contentRectTransform.SetCenterHeight(300);

            listView.content = contentRectTransform;


            return(listView);
        }
Пример #22
0
        /// <summary>
        /// Ставит новую башню. Существующая башня разрушается.
        /// </summary>
        /// <param name="turretPrefab">Префаб башни или null.</param>
        public void SetTurret(GameObject turretPrefab)
        {
            if (Turret != null)
            {
                GameObject.Destroy(Turret);
            }

            if (turretPrefab != null)
            {
                Turret = Instantiate(turretPrefab, transform.position + transform.up, Quaternion.identity) as GameObject;
                turretsFolder.AddChild(Turret);
            }
        }
Пример #23
0
        public void ChildrenGameObjectsHaveAccessToGameStage()
        {
            var parent = new GameObject();
            var child  = new GameObject();

            parent.AddChild(child);

            var gameStage = new MockGameStage();

            gameStage.AddGameObject(parent);

            Assert.AreSame(gameStage, child.GameStage);
        }
Пример #24
0
 public void ComponentStarted()
 {
     if (_displayGrid == null)
     {
         _displayGrid = new VoxelGrid(new VoxelGridData(1, 1, 1, 1), new Dictionary <Vector3i, GameObject>());
         var gameObject = new GameObject($"{Name} Display Object");
         gameObject.Transform.InheiritParentTransform = false;
         gameObject.AddComponent(_displayGrid);
         gameObject.AddComponent(new VoxelMeshRenderable(_types, _materialInstance));
         GameObject.AddChild(_displayGrid.GameObject);
     }
     _displayGrid.GameObject.IsActive = true;
 }
Пример #25
0
        public void DestroyRemovesGameObjectFromParent()
        {
            var gameStage = new MockGameStage();
            var parent    = new GameObject();

            gameStage.AddGameObject(parent);
            var child = new GameObject();

            parent.AddChild(child);
            child.Destroy();
            Assert.IsFalse(parent.Children.Contains(child));
            Assert.IsFalse(gameStage.GameObjects.Contains(child));
        }
 public override void Initialize()
 {
     base.Initialize();
     if (previewComponent != null)
     {
         GameObject go    = previewComponent.gameObject;
         GameObject child = go.AddChild();
         Text       text  = child.AddComponent <Text>();
         text.font      = pb_GUIUtility.DefaultFont();
         text.alignment = TextAnchor.LowerCenter;
         text.text      = asset.name;
     }
 }
Пример #27
0
        public GameLoop(Dispatcher disp, Canvas canvas, int drawInterval, int updateInterval)
        {
            this._drawInterval   = drawInterval;
            this._updateInterval = updateInterval;
            _canvas   = canvas;
            this.root = new GameObject(ObjectType.ROOT, Subtypes.OTHER, "root");
            this.root.AddAttribute(ElementType.MODEL, Attr.USERACTION, new UserAction());

            this._disp = disp;


            root.AddChild(new GameBuilder().CreateIntroScene());
        }
Пример #28
0
        public void AddIngredient(Ingredient ingredient)
        {
            GameObject go = content.AddChild(stepPrefab);

            // Set icon
            if (!string.IsNullOrEmpty(ingredient.icon))
            {
                string resourcePath = Path.Combine("Icons", ingredient.icon);
                Sprite s            = Resources.Load <Sprite>(resourcePath);

                if (s != null)
                {
                    RecipeStep step = go.GetComponent <RecipeStep>();
                    step.icon.sprite = s;
                }
            }

            // Setup tooltip spawner
            TooltipSpawner spawner = go.GetComponent <TooltipSpawner>();

            spawner.SetContent(ingredient.name);
        }
Пример #29
0
        public void IsUiElementTest()
        {
            // Test default behaviour
            var go = new GameObject();

            Assert.IsFalse(go.IsUiElement);

            // Test ui element inheritance
            var go1 = new GameObject(true);
            var go2 = new GameObject();

            go1.AddChild(go2);
            Assert.IsTrue(go2.IsUiElement);
        }
Пример #30
0
        private void AddShips()
        {
            GameObject eagleFrigate = AddGameObject(new GameObject(new Vector2(ScreenDimensions.X * 0.35f, ScreenDimensions.Y * 0.35f), "Cards\\Ships\\EagleFrigate\\EagleFrigateObject"), true, true);

            eagleFrigate.Name          = "Eagle Frigate";
            eagleFrigate.LocalRotation = MathHelper.PiOver2;
            float maxDimension = Math.Max(eagleFrigate.Size.X, eagleFrigate.Size.Y);

            Image eagleShield = eagleFrigate.AddChild(new Image(new Vector2(1.75f * maxDimension), Vector2.Zero, "Cards\\Shields\\PhaseEnergyShield\\PhaseEnergyShield"), true, true);

            GameObject pirateRaider = AddGameObject(new GameObject(new Vector2(ScreenDimensions.X * 0.25f, ScreenDimensions.Y * 0.85f), "Cards\\Ships\\PirateRaider\\PirateRaiderObject"), true, true);

            pirateRaider.Name = "Pirate Raider";
        }
Пример #31
0
        static void MenuClicked()
        {
            GameObject gameObject = new GameObject();

            gameObject.transform.SetLocalPosX(5.0f);
            gameObject.transform.SetLocalPosY(5.0f);

            gameObject.transform.Identity();

            var parentTrans = new GameObject("ParentTrans").transform;
            var childTrans  = new GameObject("ChildTrans").transform;

            parentTrans.AddChild(childTrans);
        }
        public void Reassign(GameObject gameObject, GameObject newParent)
        {
            if (!IsInitialized) return;

            var oldParent = gameObject.ParentObject;
            // remove the game object from its old parrent
            if (gameObject.ParentObject != null)
            {
                gameObject.ParentObject.RemoveChild(gameObject);
            }
            else if (ObjectList.Contains(gameObject))
            {
                ObjectList.Remove(gameObject);
            }
            else
            {
                Console.WriteLine("GameObjectManager reassign: game object not found in manager");
                return;
            }

            // add the game object to its new parent
            if (newParent != null)
            {
                newParent.AddChild(gameObject);
            }
            else 
            {
                ObjectList.Add(gameObject);
            }

            SelectedObject = gameObject;

            GOReassigningEventArgs e = new GOReassigningEventArgs();
            e.GameObject = gameObject;
            e.NewParent = oldParent;
        }
Пример #33
0
        private GameObject LoadGameObject(XElement xElement, string currentProjectPath)
        {
            GameObject gameObject = new GameObject();
            if((string)xElement.Attribute("Name") != null)
                gameObject.Name = (string)xElement.Attribute("Name");

            LoadComponents( gameObject, xElement.Element("Components"),currentProjectPath );

            foreach (XElement childObject in xElement.Elements("GameObject"))
            {
                gameObject.AddChild( LoadGameObject(childObject,currentProjectPath),false );
            }
 
            return gameObject;
        }