コード例 #1
0
ファイル: Helper.cs プロジェクト: RobboVariwn/VarBot
        public static void SpawnObject(int objectId)
        {
            if (objectId == 0)
            {
                return;
            }

            ProjectData.ObjectsAreChanged = true;

            var        transforms = new Dictionary <int, TransformDT>();
            GameObject gameObject = GameStateData.GetPrefabGameObject(objectId);
            int        id         = gameObject.GetComponent <ObjectId>().Id;

            transforms.Add(id, _spawnView.transform.ToTransformDT());

            SpawnInitParams param = new SpawnInitParams
            {
                IdObject   = objectId,
                IdLocation = ProjectData.SceneId,
                Transforms = transforms
            };

            if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew)
            {
                param.ParentId = ParentManager.Instance.GetSelectedParent().Id;
            }

            ICommand command = new SpawnCommand(param);

            command.Execute();
        }
コード例 #2
0
        /// <summary>
        /// Spawn object with full defined transform
        /// </summary>
        /// <param name="objectId">Object Id</param>
        /// <param name="targetTransform">Transform which define object's position, rotation and scale</param>
        public void SpawnObject(int objectId, Transform targetTransform)
        {
            if (objectId == 0)
            {
                return;
            }

            ProjectData.ObjectsAreChanged = true;

            var transforms    = new Dictionary <int, TransformDT>();
            var prefabGo      = GameStateData.GetPrefabGameObject(objectId);
            var rootId        = prefabGo.GetComponent <ObjectId>().Id;
            var rootTransform = targetTransform.ToTransformDT();

            transforms.Add(rootId, rootTransform);

            var spawnParams = new SpawnInitParams()
            {
                IdObject   = objectId,
                IdLocation = ProjectData.SceneId,
                Transforms = transforms
            };

            if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew)
            {
                spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id;
            }

            ICommand command = new SpawnCommand(spawnParams);

            command.Execute();
        }
コード例 #3
0
        /// <summary>
        /// Spawn object in position
        /// </summary>
        /// <param name="objectId">Object Id</param>
        /// <param name="position">Object's spawn position</param>
        public void SpawnObject(int objectId, Vector3 position)
        {
            if (objectId == 0)
            {
                return;
            }

            ProjectData.ObjectsAreChanged = true;

            var transforms    = new Dictionary <int, TransformDT>();
            var prefabGo      = GameStateData.GetPrefabGameObject(objectId);
            var rootId        = prefabGo.GetComponent <ObjectId>().Id;
            var rootTransform = new TransformDT()
            {
                PositionDT = new Vector3DT(position),
                RotationDT = new QuaternionDT(Quaternion.identity),
                ScaleDT    = new Vector3DT(Vector3.one)
            };

            transforms.Add(rootId, rootTransform);

            var spawnParams = new SpawnInitParams()
            {
                IdObject   = objectId,
                IdLocation = ProjectData.SceneId,
                Transforms = transforms
            };

            if (ParentManager.Instance != null && ParentManager.Instance.ParentCommand == ParentCommand.SetNew)
            {
                spawnParams.ParentId = ParentManager.Instance.GetSelectedParent().Id;
            }

            ICommand command = new SpawnCommand(spawnParams);

            command.Execute();
        }