Unreal.js icon indicating copy to clipboard operation
Unreal.js copied to clipboard

How to pass parameters in constructor or ctor function after using require('uclass')()(global, )?

Open hamkoo opened this issue 5 years ago • 3 comments

hamkoo avatar May 23 '19 03:05 hamkoo

_part_0_ue.d.ts

declare class UObject { constructor(); constructor(Outer: UObject); } declare class Actor extends UObject { constructor(InWorld: World, Location?: Vector, Rotation?: Rotator); }

with constructor functions defined above, it can pass some parameters as follow:

class MTestActor extends Actor{ } let act = <MTestActor>new Actor_C(GWorld, {Z:200});

but, how can i pass customer parameters while constructing?

hamkoo avatar May 23 '19 03:05 hamkoo

Actor_C that be created by uclass is unreal class. It can't be get more custom parameter by override constructor. Only way is that use lazy-initialization.

class MyActor extends Actor {
            ctor() {
                console.log('ctor')
            }
            lazy_ctor(...params) {
                console.log('lazy_ctor', this, params)
            }
        }
        let MyActor_C = require('uclass')()(global,MyActor);
        let d = new MyActor_C(GWorld, {Z:100});
        d.lazy_ctor([1,2,3]);

keicoon avatar Oct 28 '19 02:10 keicoon

was not aware of lazy_ctor thanks @keicoon!

Master244 avatar May 19 '20 12:05 Master244