77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
# This script shows how to setup dependencies between variants when using the Variant Manager Python API
|
|
|
|
import unreal
|
|
|
|
lvs = unreal.VariantManagerLibrary.create_level_variant_sets_asset("LVS", "/Game/")
|
|
if lvs is None:
|
|
print ("Failed to spawn either the LevelVariantSets asset or the LevelVariantSetsActor!")
|
|
quit()
|
|
|
|
var_set_colors = unreal.VariantSet()
|
|
var_set_colors.set_display_text("Colors")
|
|
|
|
var_set_letters = unreal.VariantSet()
|
|
var_set_letters.set_display_text("Letters")
|
|
|
|
var_set_fruits = unreal.VariantSet()
|
|
var_set_fruits.set_display_text("Fruits")
|
|
|
|
var_red = unreal.Variant()
|
|
var_red.set_display_text("Red")
|
|
|
|
var_green = unreal.Variant()
|
|
var_green.set_display_text("Green")
|
|
|
|
var_blue = unreal.Variant()
|
|
var_blue.set_display_text("Blue")
|
|
|
|
var_a = unreal.Variant()
|
|
var_a.set_display_text("A")
|
|
|
|
var_b = unreal.Variant()
|
|
var_b.set_display_text("B")
|
|
|
|
var_apple = unreal.Variant()
|
|
var_apple.set_display_text("Apple")
|
|
|
|
var_orange = unreal.Variant()
|
|
var_orange.set_display_text("Orange")
|
|
|
|
# Adds the objects to the correct parents
|
|
lvs.add_variant_set(var_set_colors)
|
|
lvs.add_variant_set(var_set_letters)
|
|
lvs.add_variant_set(var_set_fruits)
|
|
|
|
var_set_colors.add_variant(var_red)
|
|
var_set_colors.add_variant(var_green)
|
|
var_set_colors.add_variant(var_blue)
|
|
|
|
var_set_letters.add_variant(var_a)
|
|
var_set_letters.add_variant(var_b)
|
|
|
|
var_set_fruits.add_variant(var_apple)
|
|
var_set_fruits.add_variant(var_orange)
|
|
|
|
# Let's make variant 'Red' also switch on variant 'A' before it is switched on
|
|
dep1 = unreal.VariantDependency()
|
|
dep1.set_editor_property('VariantSet', var_set_letters)
|
|
dep1.set_editor_property('Variant', var_a)
|
|
dep1_index = var_red.add_dependency(dep1)
|
|
|
|
# Let's also make variant 'A' also switch on variant 'Orange' before it is switched on
|
|
dep2 = unreal.VariantDependency()
|
|
dep2.set_editor_property('VariantSet', var_set_fruits)
|
|
dep2.set_editor_property('Variant', var_orange)
|
|
var_a.add_dependency(dep2)
|
|
|
|
# Because dependencies trigger first, this will switch on 'Orange', then 'A' and finally 'Red'
|
|
var_red.switch_on()
|
|
|
|
# Let's disable the first dependency
|
|
# Note we need to set the struct back into the variant, as it's returned by value
|
|
dep1.set_editor_property('bEnabled', False)
|
|
var_red.set_dependency(dep1_index[0], dep1)
|
|
|
|
# Now this will only trigger 'Red', because dep1 is disabled and doesn't propagate to variant 'A'
|
|
var_red.switch_on ( )
|