public void OnEnable() { setupWindow(); // Data dataRoot.Add(new Label("Choose a Enemy:")); objectData = new ObjectField(); objectData.objectType = typeof(Enemy); dataRoot.Add(objectData); objectData.RegisterCallback <ChangeEvent <UnityEngine.Object> >((evt) => { var change = (evt.target as ObjectField).value; enemy = change as Enemy; UpdateBinding(); }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Name:")); nameTextField = new TextField(); nameTextField.bindingPath = "objectName"; dataRoot.Add(nameTextField); addSlider(ref dataRoot, 20, 100, "Health: ", "health"); addSlider(ref dataRoot, 30, 500, "Walk Speed: ", "walkSpeed"); addSlider(ref dataRoot, 1, 100, "Time Between Each Attack (s): ", "attackTimeInterval"); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Attack Style:")); var attackStyleEnumField = new EnumField(AttackStyles.RangeBased); dataRoot.Add(attackStyleEnumField); attackStyleEnumField.RegisterCallback <ChangeEvent <Enum> >((evt) => { var change = evt.newValue; if (enemy) { enemy.attackStyle = Convert.ToInt32(change); } }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Weapon:")); var weaponData = new ObjectField(); weaponData.objectType = typeof(Projectile); weaponData.bindingPath = "weapon"; dataRoot.Add(weaponData); // sprites Button newData = new Button(() => { Enemy newEnemy = CreateInstance <Enemy>(); newEnemy.objectName = "Enemy"; var path = "Assets/Resources/Gauntlet/Prefabs/Enemies"; AssetDatabase.CreateAsset(newEnemy, AssetDatabase.GenerateUniqueAssetPath(path + "/Enemy-00.asset")); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); objectData.value = newEnemy; UpdateBinding(); }); newData.text = "New"; spriteRoot.Add(newData); spriteRoot.Add(new Spacer(30)); spriteRoot.Add(new Label("Enemy Sprite:")); objectTileSprite = new ObjectField(); objectTileSprite.objectType = typeof(Sprite); objectTileSprite.bindingPath = "mainSprite"; spriteRoot.Add(objectTileSprite); objectTileSpriteImage = new Image() { style = { width = 100, height = 100, borderLeftWidth = 2, borderRightWidth = 2, borderTopWidth = 2, borderBottomWidth = 2, marginTop = 10, marginBottom = 20, marginLeft = 10, borderColor = Color.gray }, scaleMode = ScaleMode.ScaleToFit }; objectTileSprite.RegisterCallback <ChangeEvent <UnityEngine.Object> >((evt) => { var change = (evt.target as ObjectField).value; if (change) { var sprite = change as Sprite; GauntletLevelEditor.rebindImageTexture(ref objectTileSpriteImage, sprite); } else { objectTileSpriteImage.image = null; } if (objectData.value) { (objectData.value as Enemy).mainSprite = change as Sprite; } Repaint(); parentWindow.rebindPrefabListView(); }); spriteRoot.Add(objectTileSpriteImage); }
public void OnEnable() { setupWindow(); // Data dataRoot.Add(new Label("Choose a Projectile:")); objectData = new ObjectField(); objectData.objectType = typeof(Projectile); dataRoot.Add(objectData); objectData.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; projectile = change as Projectile; UpdateBinding(); }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Name:")); nameTextField = new TextField(); nameTextField.bindingPath = "objectName"; dataRoot.Add(nameTextField); addSlider(ref dataRoot, 1, 100, "Damage: ", "damage"); addSlider(ref dataRoot, 50, 1000, "Throw Speed: ", "throwSpeed"); // sprites Button newData = new Button(() => { Projectile newProjectile = CreateInstance <Projectile>(); newProjectile.objectName = "Projectile"; var path = "Assets/Resources/Gauntlet/Prefabs/Projectiles"; AssetDatabase.CreateAsset(newProjectile, AssetDatabase.GenerateUniqueAssetPath(path + "/Projectile-00.asset")); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); objectData.value = newProjectile; UpdateBinding(); }); newData.text = "New"; spriteRoot.Add(newData); spriteRoot.Add(new Spacer(30)); spriteRoot.Add(new Label("Projectile Sprite:")); objectTileSprite = new ObjectField(); objectTileSprite.objectType = typeof(Sprite); objectTileSprite.bindingPath = "mainSprite"; spriteRoot.Add(objectTileSprite); objectTileSpriteImage = new Image() { style = { width = 100, height = 100, borderLeftWidth = 2, borderRightWidth = 2, borderTopWidth = 2, borderBottomWidth = 2, marginTop = 10, marginBottom = 20, marginLeft = 10, borderColor = Color.gray }, scaleMode = ScaleMode.ScaleToFit }; objectTileSprite.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; if (change) { var sprite = change as Sprite; GauntletLevelEditor.rebindImageTexture(ref objectTileSpriteImage, sprite); } else { objectTileSpriteImage.image = null; } if (objectData.value) { (objectData.value as Projectile).mainSprite = change as Sprite; } Repaint(); parentWindow.rebindPrefabListView(); }); spriteRoot.Add(objectTileSpriteImage); }
public void OnEnable() { setupWindow(); // Data dataRoot.Add(new Label("Choose a Ground Tile:")); objectData = new ObjectField(); objectData.objectType = typeof(GroundTile); dataRoot.Add(objectData); objectData.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; groundTile = change as GroundTile; UpdateBinding(); }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Name:")); nameTextField = new TextField(); nameTextField.bindingPath = "objectName"; dataRoot.Add(nameTextField); dataRoot.Add(new Spacer(30)); Toggle colToggle = new Toggle("Is Collider:"); Toggle triggerToggle = new Toggle("Is Trigger:"); colToggle.bindingPath = "isCollider"; triggerToggle.bindingPath = "isTrigger"; triggerToggle.visible = false; colToggle.RegisterCallback <ChangeEvent <bool> >((evt) => { if (evt.newValue == false) { triggerToggle.value = false; triggerToggle.visible = false; } else { triggerToggle.visible = true; } }); dataRoot.Add(colToggle); dataRoot.Add(triggerToggle); // sprites Button newData = new Button(() => { GroundTile tile = CreateInstance <GroundTile>(); tile.objectName = "GroundTile"; var path = "Assets/Resources/Gauntlet/Prefabs/GroundTiles"; AssetDatabase.CreateAsset(tile, AssetDatabase.GenerateUniqueAssetPath(path + "/GroundTile-00.asset")); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); objectData.value = tile; UpdateBinding(); }); newData.text = "New"; spriteRoot.Add(newData); spriteRoot.Add(new Spacer(30)); spriteRoot.Add(new Label("Ground Tile Sprite:")); objectTileSprite = new ObjectField(); objectTileSprite.objectType = typeof(Sprite); objectTileSprite.bindingPath = "mainSprite"; spriteRoot.Add(objectTileSprite); objectTileSpriteImage = new Image() { style = { width = 100, height = 100, borderLeftWidth = 2, borderRightWidth = 2, borderTopWidth = 2, borderBottomWidth = 2, marginTop = 10, marginBottom = 20, marginLeft = 10, borderColor = Color.gray }, scaleMode = ScaleMode.ScaleToFit }; objectTileSprite.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; if (change) { var sprite = change as Sprite; GauntletLevelEditor.rebindImageTexture(ref objectTileSpriteImage, sprite); } else { objectTileSpriteImage.image = null; } if (objectData.value) { (objectData.value as GroundTile).mainSprite = change as Sprite; } Repaint(); parentWindow.rebindPrefabListView(); }); spriteRoot.Add(objectTileSpriteImage); }
public void OnEnable() { setupWindow(); // Data dataRoot.Add(new Label("Choose a SpawnFactory:")); objectData = new ObjectField(); objectData.objectType = typeof(SpawnFactory); dataRoot.Add(objectData); objectData.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; spawnFactory = change as SpawnFactory; UpdateBinding(); }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Name:")); nameTextField = new TextField(); nameTextField.bindingPath = "objectName"; dataRoot.Add(nameTextField); addSlider(ref dataRoot, 20, 100, "Health: ", "health"); addSlider(ref dataRoot, 1, 100, "TimeInterval (s): ", "timeInterval"); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Enemy:")); var enemyData = new ObjectField(); enemyData.objectType = typeof(Enemy); enemyData.bindingPath = "enemy"; dataRoot.Add(enemyData); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Drop Item:")); var itemData = new ObjectField(); itemData.objectType = typeof(Item); itemData.bindingPath = "dropItem"; dataRoot.Add(itemData); // sprites Button newData = new Button(() => { SpawnFactory newSpawnFactory = CreateInstance <SpawnFactory>(); newSpawnFactory.objectName = "SpawnFactory"; var path = "Assets/Resources/Gauntlet/Prefabs/SpawnFactories"; AssetDatabase.CreateAsset(newSpawnFactory, AssetDatabase.GenerateUniqueAssetPath(path + "/SpawnFactory-00.asset")); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); objectData.value = newSpawnFactory; UpdateBinding(); }); newData.text = "New"; spriteRoot.Add(newData); spriteRoot.Add(new Spacer(30)); spriteRoot.Add(new Label("SpawnFactory Sprite:")); objectTileSprite = new ObjectField(); objectTileSprite.objectType = typeof(Sprite); objectTileSprite.bindingPath = "mainSprite"; spriteRoot.Add(objectTileSprite); objectTileSpriteImage = new Image() { style = { width = 100, height = 100, borderLeftWidth = 2, borderRightWidth = 2, borderTopWidth = 2, borderBottomWidth = 2, marginTop = 10, marginBottom = 20, marginLeft = 10, borderColor = Color.gray }, scaleMode = ScaleMode.ScaleToFit }; objectTileSprite.RegisterCallback <ChangeEvent <Object> >((evt) => { var change = (evt.target as ObjectField).value; if (change) { var sprite = change as Sprite; GauntletLevelEditor.rebindImageTexture(ref objectTileSpriteImage, sprite); } else { objectTileSpriteImage.image = null; } if (objectData.value) { (objectData.value as SpawnFactory).mainSprite = change as Sprite; } Repaint(); parentWindow.rebindPrefabListView(); }); spriteRoot.Add(objectTileSpriteImage); }
public void OnEnable() { setupWindow(); // Data dataRoot.Add(new Label("Choose a Item:")); objectData = new ObjectField(); objectData.objectType = typeof(Item); dataRoot.Add(objectData); objectData.RegisterCallback <ChangeEvent <UnityEngine.Object> >((evt) => { var change = (evt.target as ObjectField).value; item = change as Item; UpdateBinding(); }); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Name:")); nameTextField = new TextField(); nameTextField.bindingPath = "objectName"; dataRoot.Add(nameTextField); dataRoot.Add(new Spacer(30)); dataRoot.Add(new Label("Item Type:")); var itemTypeEnumField = new EnumField(ItemTypes.HealthBoost); itemTypeEnumField.bindingPath = "itemType"; dataRoot.Add(itemTypeEnumField); itemTypeEnumField.RegisterCallback <ChangeEvent <Enum> >((evt) => { var change = evt.newValue; if (item) { item.itemType = Convert.ToInt32(change); } }); // sprites Button newData = new Button(() => { Item newItem = CreateInstance <Item>(); newItem.objectName = "Item"; var path = "Assets/Resources/Gauntlet/Prefabs/Items"; AssetDatabase.CreateAsset(newItem, AssetDatabase.GenerateUniqueAssetPath(path + "/Item-00.asset")); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); objectData.value = newItem; UpdateBinding(); }); newData.text = "New"; spriteRoot.Add(newData); spriteRoot.Add(new Spacer(30)); spriteRoot.Add(new Label("Item Sprite:")); objectTileSprite = new ObjectField(); objectTileSprite.objectType = typeof(Sprite); objectTileSprite.bindingPath = "mainSprite"; spriteRoot.Add(objectTileSprite); objectTileSpriteImage = new Image() { style = { width = 100, height = 100, borderLeftWidth = 2, borderRightWidth = 2, borderTopWidth = 2, borderBottomWidth = 2, marginTop = 10, marginBottom = 20, marginLeft = 10, borderColor = Color.gray }, scaleMode = ScaleMode.ScaleToFit }; objectTileSprite.RegisterCallback <ChangeEvent <UnityEngine.Object> >((evt) => { var change = (evt.target as ObjectField).value; if (change) { var sprite = change as Sprite; GauntletLevelEditor.rebindImageTexture(ref objectTileSpriteImage, sprite); } else { objectTileSpriteImage.image = null; } if (objectData.value) { (objectData.value as Item).mainSprite = change as Sprite; } Repaint(); parentWindow.rebindPrefabListView(); }); spriteRoot.Add(objectTileSpriteImage); }