// Optional address to store scope location where data member was found - see eSkScope.
// If set to nullptr or not found then it will be unchanged.
Oh, I see. I thought it's mean to be passed in
get_data_by_name method to limit the result, like
get_data_name(SOME_DATA_NAME, SkScope_instance), totally get it wrong Thanks!
I think I should explain why I need those C++ access in the first place. I have added 3 method in SkUEActor to interact with Blueprint property:
// Get value from Blueprint property
// bp_var_get("MyMesh") // return a StaticMeshComponent object
// // assume a "MyMesh" Blueprint variable exists
bp_var_get(String blueprint_property_name) Object
// Set Blueprint Property property
// !hero: Actor.named("MyHero")<>Hero
// hero.bp_var_set("MyRobot", robot) // set "MyRobot" Blueprint property to "RoboChar1" actor
bp_var_set(String blueprint_proerpty_name, Object val_obj)
// Init Instance data members from Blueprint properties base on naming convention
// All data member starts with "bp_" will be synced with Blueprint property after this call
// a "bp_MyRobot" data member will be updated with value of "MyRobot" Blueprint property
bp_vars_sync works, I iterate through blueprint properties of current actor class, and check if there's "bp_BLUEPRINT_PROP" data member match in current SkookumScript class. With the help of
get_data_type() method, I can do the check without triggering the "data member not exists" assertion.