Beispiel #1
0
        void GenerateSpawner(List <EditorSpawnerData> spawners)
        {
            for (int i = 0; i < spawners.Count; i++)
            {
                EditorSpawnerData referenceData = spawners[i];
                Object            prefab        = AssetManager.Instance.GetPrefabByKeyword(referenceData.assetCode);
                GameObject        go            = Instantiate(prefab) as GameObject;
                go.transform.SetParent(spawnerParent);

                MapEditorSpawnerController controller = go.AddComponent <MapEditorSpawnerController>();
                controller.Init(referenceData);
            }
        }
        public void OnPointerClick(PointerEventData eventData)
        {
            if (ToolboxManager.Instance.selectedTileType == ToolBoxTileType.Spawner)
            {
                Vector3 pressPosition = eventData.pointerPressRaycast.worldPosition;

                ToolBoxSpawnerTemplate template = (ToolBoxSpawnerTemplate)ToolboxManager.Instance.tileTemplate;
                Object     prefab = AssetManager.Instance.GetPrefabByKeyword(template.assetCode);
                GameObject go     = Instantiate(prefab) as GameObject;
                go.transform.SetParent(EditorTileManager.Instance.spawnerParent);

                MapEditorSpawnerController spawnControl = go.AddComponent <MapEditorSpawnerController>();
                EditorSpawnerData          spawnData    = new EditorSpawnerData();
                spawnData.assetCode     = template.assetCode;
                spawnData.spawnerMethod = (int)template.spawnMethod;
                spawnData.spawnerType   = (int)template.spawnerType;
                spawnData.spawnInterval = 1;
                spawnData.spawnRate     = 1;
                spawnData.maxSpawn      = 10;
                spawnData.radius        = 0.5f;

                if (template.spawnMethod == SpawnerMethodEditor.Point)
                {
                    spawnData.spawnStartPos = spawnData.spawnEndPos = new Vector2(pressPosition.x, pressPosition.y);
                }
                else if (template.spawnMethod == SpawnerMethodEditor.Line)
                {
                    spawnData.spawnStartPos = new Vector2(pressPosition.x - 0.5f, pressPosition.y);
                    spawnData.spawnEndPos   = new Vector2(pressPosition.x + 0.5f, pressPosition.y);
                }

                spawnControl.Init(spawnData);

                Debug.Log("Spawner Spawn " + spawnData.assetCode);
            }
        }