예제 #1
0
    private void Start()
    {
        _sceneObjects = GetComponentsInChildren <Transform>();

        string filePath = "Assets/XmlScenes/" + _fileName + ".xml";

        XmlSerializer serializer = new XmlSerializer(typeof(SceneObjectContainer));
        FileStream    stream     = new FileStream(filePath, FileMode.Create);

        //Setting up the container
        SceneObjectContainer sceneObjectContainer = new SceneObjectContainer();

        //starting at i = 1, so that we don't parse the level exporter itself
        for (int i = 1; i < _sceneObjects.Length; i++)
        {
            //adding objects to the container
            Transform   currentTransform = _sceneObjects[i];
            SceneObject sceneObject      = CreateSceneObject(currentTransform);

            //Adding the newly created object to the list
            sceneObjectContainer.AddSceneObject(sceneObject);
        }

        //Creating the file
        serializer.Serialize(stream, sceneObjectContainer);
        stream.Close();

        Debug.Log("Scenefile '" + _fileName + ".xml' created in Assets/XmlScenes");
    }
예제 #2
0
 private void OnTriggerEnter(Collider collider)
 {
     if (collider.tag == "Player")
     {
         SceneObjectContainer.OnSceneReload();
         SceneManager.LoadScene(0);
     }
 }
예제 #3
0
    protected override void Awake()
    {
        base.Awake();
        thisRigidbody = GetComponent <Rigidbody2D>();
        SceneObjectContainer.AddProjectileContainer(gameObject.tag);

        axis = axisAngle(angle);
        move = axis * moveSpeed;
    }
예제 #4
0
파일: Player.cs 프로젝트: AGhostik/Gradius
    protected override void Awake()
    {
        base.Awake();

        thisRigidbody = GetComponent <Rigidbody2D>();
        playerAudio   = GetComponent <AudioSource>();
        playerGun_1   = thisTransform.GetChild(0).gameObject.GetComponent <Gun>();
        playerGun_2   = thisTransform.GetChild(1).gameObject.GetComponent <Gun>();

        thisTransform.parent = SceneObjectContainer.Player.transform;
        SceneObjectContainer.AddProjectileContainer(gameObject.tag);
    }
예제 #5
0
파일: Spawner.cs 프로젝트: AGhostik/Gradius
 private void waitAllKilled()
 {
     if (currentWave.waitAllKilled)
     {
         activeEnemiesCount = SceneObjectContainer.EnemiesContainer_ActiveChildCount();
         if (activeEnemiesCount == 0)
         {
             waveStage++;
         }
     }
     else
     {
         waveStage++;
     }
 }
예제 #6
0
파일: Scene.cs 프로젝트: zhuravelsv/UWP3D
        public void AddObject(SceneObject sceneObject)
        {
            sceneObject.CurrentScene = this;

            var container = new SceneObjectContainer(sceneObject);

            _sceneObjects.Add(container);

            var graphics = sceneObject.GetGraphics();

            if (graphics != null)
            {
                container.IsGraphicsExist = true;

                _rootContainerVisual.Children.InsertAtTop(graphics);
            }
        }
예제 #7
0
        public void SelectPrefab(PrefabContainer container)
        {
            string sceneName = EditorSceneManager.GetActiveScene().name;

            if (sceneName.Equals("Level Editor") || sceneName.Equals("Region Editor"))
            {
                if (selectObject == null)
                {
                    selectObject = new SceneObjectContainer();
                }
                selectObject.SetObjectInfo(container);
                usingWalls   = false;
                rotationSide = 0;
            }
            else
            {
                Debug.Log("You can only edit level in at the level editor scenes");
            }
        }
예제 #8
0
 void Awake()
 {
     SceneObjectContainer.CreateItemsContainer();
     SceneObjectContainer.CreateProjectileMainContainer();
     SceneObjectContainer.CreateDieEffectsContainer();
     if (Player != null)
     {
         SceneObjectContainer.CreatePlayerContainer();
         GameObject playertemp = Instantiate(Player);
         if (immortalPlayer)
         {
             playertemp.GetComponent <Destroyable>().immortal = true;
         }
     }
     if (Enemies != null)
     {
         SceneObjectContainer.CreateEnemiesContainer();
         Instantiate(Enemies);
     }
 }
예제 #9
0
        void OnAdd(bool instancing = false)
        {
            Event e = Event.current;

            Vector3 off         = allowOffset ? offset : Vector3.zero;
            Vector2 guiPosition = Event.current.mousePosition;
            Ray     ray         = HandleUtility.GUIPointToWorldRay(guiPosition);

            if (selectObject == null)
            {
                selectObject = new SceneObjectContainer();
            }
            if (selectObject.HasObject)
            {
                if (Physics.Raycast(ray, out hit, float.PositiveInfinity, LayerMask.GetMask("Grid", "LevelTerrain")))
                {
                    if (EditorSceneManager.GetActiveScene().name == "Level Editor")
                    {
                        AddIntoLevel(e, offset, instancing, ray);
                    }
                    else
                    {
                        if (hit.transform.GetComponent <RegionTerrain>())
                        {
                            if (!usingWalls)
                            {
                                AddingObject(e, off, instancing);
                            }
                            else
                            {
                                AddingWall(e, off, instancing);
                            }
                        }
                    }
                }
            }
        }
예제 #10
0
 private void Awake()
 {
     selectObject = new SceneObjectContainer();
 }
예제 #11
0
    private void CacheProjectiles()
    {
        SceneObjectContainer.AddGunContainer(gameObject.name);
        int projectileArraySize = ProjectileLevels.Count;

        for (int i = 0; i < projectileArraySize; i++)
        {
            int        projectileCount;
            Projectile tempPj                = ProjectileLevels[i].Projectile.GetComponent <Projectile>();
            GameObject pjCollector           = new GameObject();
            GameObject pjCollector_companion = new GameObject();
            GameObject efCollector           = new GameObject();
            GameObject efCollector_companion = new GameObject();

            pjCollector.name           = ProjectileLevels[i].Projectile.name + "_collection";
            pjCollector_companion.name = ProjectileLevels[i].Projectile.name + "_collection_companion";
            efCollector.name           = ProjectileLevels[i].Projectile.name + "_ef_collection";
            efCollector_companion.name = ProjectileLevels[i].Projectile.name + "_ef_collection_companion";

            pjCollector.transform.parent           = SceneObjectContainer.Projectiles_gun_current.transform;
            pjCollector_companion.transform.parent = SceneObjectContainer.Projectiles_gun_current.transform;
            efCollector.transform.parent           = SceneObjectContainer.Projectiles_gun_current.transform;
            efCollector_companion.transform.parent = SceneObjectContainer.Projectiles_gun_current.transform;

            //projectileCount calculate
            if (PauseLength == 0)
            {
                projectileCount = (int)(tempPj.Range / (tempPj.Speed * firerateCap) + 0.9f);
            }
            else
            {
                float pauseRange   = tempPj.Speed * PauseLength;
                float rangeWoPause = tempPj.Range - pauseRange * (int)(tempPj.Range / ((shotsBetweenPause) * firerateCap + pauseRange));
                projectileCount = (int)(rangeWoPause / (tempPj.Speed * firerateCap) + 0.9f);
            }
            ProjectileLevels[i].projectilesCached          = new GameObject[projectileCount];
            ProjectileLevels[i].projectilesCachedComponent = new Projectile[projectileCount];

            if (Companion != null)
            {
                ProjectileLevels[i].projectilesCached_companion          = new GameObject[projectileCount];
                ProjectileLevels[i].projectilesCachedComponent_companion = new Projectile[projectileCount];
            }
            else
            {
                Destroy(pjCollector_companion);
                Destroy(efCollector_companion);
            }

            ProjectileLevels[i].projectileCount = projectileCount;

            //Instantiate projectiles
            for (int j = 0; j < projectileCount; j++)
            {
                //player
                GameObject temp;
                temp = Instantiate(ProjectileLevels[i].Projectile, pjCollector.transform);
                temp.SetActive(false);

                ProjectileLevels[i].projectilesCached[j]          = temp;
                ProjectileLevels[i].projectilesCachedComponent[j] = temp.GetComponent <Projectile>();

                GameObject ef_pierce = ProjectileLevels[i].projectilesCachedComponent[j].PierceEffect_cached;
                if (ef_pierce != null)
                {
                    ef_pierce.transform.SetParent(efCollector.transform);
                }

                GameObject ef_die = ProjectileLevels[i].projectilesCachedComponent[j].DieEffect_cached;
                if (ef_die != null)
                {
                    ef_die.transform.SetParent(efCollector.transform);
                }


                //companion
                if (Companion != null)
                {
                    temp = Instantiate(ProjectileLevels[i].Projectile, pjCollector_companion.transform);
                    temp.SetActive(false);
                    ProjectileLevels[i].projectilesCached_companion[j]          = temp;
                    ProjectileLevels[i].projectilesCachedComponent_companion[j] = temp.GetComponent <Projectile>();

                    GameObject ef_pierce_companion = ProjectileLevels[i].projectilesCachedComponent_companion[j].PierceEffect_cached;
                    if (ef_pierce_companion != null)
                    {
                        ef_pierce_companion.transform.SetParent(efCollector_companion.transform);
                    }

                    GameObject ef_die_companion = ProjectileLevels[i].projectilesCachedComponent_companion[j].DieEffect_cached;
                    if (ef_die_companion != null)
                    {
                        ef_die_companion.transform.SetParent(efCollector_companion.transform);
                    }
                }
            }

            //Destroy empty effect collections
            if (efCollector.transform.childCount == 0)
            {
                Destroy(efCollector);
            }
            if (efCollector_companion.transform.childCount == 0)
            {
                Destroy(efCollector_companion);
            }
        }
    }