添加tickactor,没成功
This commit is contained in:
@@ -1,4 +1,39 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const UE = require("ue");
|
||||
const puerts_1 = require("puerts");
|
||||
// 创建一个用于Tick的Actor
|
||||
class TSTickActor extends UE.Actor {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.lastPrintTime = 0;
|
||||
}
|
||||
ReceiveTick(DeltaSeconds) {
|
||||
super.ReceiveTick(DeltaSeconds);
|
||||
// 每秒打印一次
|
||||
this.lastPrintTime += DeltaSeconds;
|
||||
if (this.lastPrintTime >= 1.0) {
|
||||
console.log('Tick: ' + this.lastPrintTime.toFixed(2));
|
||||
this.lastPrintTime = 0;
|
||||
}
|
||||
}
|
||||
// 确保Actor可以Tick
|
||||
ReceiveBeginPlay() {
|
||||
super.ReceiveBeginPlay();
|
||||
this.PrimaryActorTick.bCanEverTick = true;
|
||||
}
|
||||
}
|
||||
console.log('--------------------------entry.ts started2----------------------');
|
||||
// 获取游戏实例和世界
|
||||
let gameInstance = puerts_1.argv.getByName("GameInstance");
|
||||
let world = gameInstance.GetWorld();
|
||||
// 在场景中生成TSTickActor
|
||||
let spawnLocation = new UE.Vector(0, 0, 100); // 在高度100的位置生成,避免卡在地面
|
||||
let spawnRotation = new UE.Rotator(0, 0, 0);
|
||||
let spawnTransform = new UE.Transform();
|
||||
spawnTransform.SetLocation(spawnLocation);
|
||||
spawnTransform.SetRotation(spawnRotation.Quaternion());
|
||||
let tickActor = UE.GameplayStatics.BeginDeferredActorSpawnFromClass(world, TSTickActor.StaticClass(), spawnTransform);
|
||||
UE.GameplayStatics.FinishSpawningActor(tickActor, spawnTransform);
|
||||
console.log('--------------------------TSTickActor spawned----------------------');
|
||||
//# sourceMappingURL=entry.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../TypeScript/entry.ts"],"names":[],"mappings":";;AAGA,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA"}
|
||||
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../TypeScript/entry.ts"],"names":[],"mappings":";;AAAA,yBAAwB;AACxB,mCAAuC;AAEvC,mBAAmB;AACnB,MAAM,WAAY,SAAQ,EAAE,CAAC,KAAK;IAAlC;;QACY,kBAAa,GAAW,CAAC,CAAC;IAkBtC,CAAC;IAhBG,WAAW,CAAC,YAAoB;QAC5B,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEhC,SAAS;QACT,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SAC1B;IACL,CAAC;IAED,gBAAgB;IAChB,gBAAgB;QACZ,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9C,CAAC;CACJ;AAED,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAA;AAEhF,YAAY;AACZ,IAAI,YAAY,GAAI,aAAI,CAAC,SAAS,CAAC,cAAc,CAAqB,CAAA;AACtE,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;AAEpC,oBAAoB;AACpB,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,qBAAqB;AACnE,IAAI,aAAa,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;AACxC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC1C,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;AAEvD,IAAI,SAAS,GAAG,EAAE,CAAC,eAAe,CAAC,gCAAgC,CAC/D,KAAK,EACL,WAAW,CAAC,WAAW,EAAE,EACzB,cAAc,CACF,CAAC;AACjB,EAAE,CAAC,eAAe,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAElE,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAA"}
|
||||
@@ -0,0 +1,14 @@
|
||||
#include "TSUserWidget.h"
|
||||
|
||||
void UTSUserWidget::SetTypeScriptTickFunction(FString FunctionName)
|
||||
{
|
||||
TSTickFunctionName = FunctionName;
|
||||
}
|
||||
|
||||
void UTSUserWidget::NativeTick(const FGeometry& MyGeometry, float InDeltaTime)
|
||||
{
|
||||
Super::NativeTick(MyGeometry, InDeltaTime);
|
||||
|
||||
// 这里可以调用TypeScript中注册的Tick函数
|
||||
// 具体实现方式需要根据您的Puerts配置来调用
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "Blueprint/UserWidget.h"
|
||||
#include "TSUserWidget.generated.h"
|
||||
|
||||
UCLASS()
|
||||
class MINGSIMULATOR_API UTSUserWidget : public UUserWidget
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UFUNCTION(BlueprintCallable, Category = "TypeScript")
|
||||
void SetTypeScriptTickFunction(FString FunctionName);
|
||||
|
||||
virtual void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override;
|
||||
|
||||
private:
|
||||
FString TSTickFunctionName;
|
||||
};
|
||||
+43
-1
@@ -1,4 +1,46 @@
|
||||
import * as UE from 'ue'
|
||||
import {argv, blueprint} from 'puerts';
|
||||
|
||||
console.log('--------------------------entry.ts started2----------------------')
|
||||
// 创建一个用于Tick的Actor
|
||||
class TSTickActor extends UE.Actor {
|
||||
private lastPrintTime: number = 0;
|
||||
|
||||
ReceiveTick(DeltaSeconds: number): void {
|
||||
super.ReceiveTick(DeltaSeconds);
|
||||
|
||||
// 每秒打印一次
|
||||
this.lastPrintTime += DeltaSeconds;
|
||||
if (this.lastPrintTime >= 1.0) {
|
||||
console.log('Tick: ' + this.lastPrintTime.toFixed(2));
|
||||
this.lastPrintTime = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// 确保Actor可以Tick
|
||||
ReceiveBeginPlay(): void {
|
||||
super.ReceiveBeginPlay();
|
||||
this.PrimaryActorTick.bCanEverTick = true;
|
||||
}
|
||||
}
|
||||
|
||||
console.log('--------------------------entry.ts started2----------------------')
|
||||
|
||||
// 获取游戏实例和世界
|
||||
let gameInstance = (argv.getByName("GameInstance") as UE.GameInstance)
|
||||
let world = gameInstance.GetWorld();
|
||||
|
||||
// 在场景中生成TSTickActor
|
||||
let spawnLocation = new UE.Vector(0, 0, 100); // 在高度100的位置生成,避免卡在地面
|
||||
let spawnRotation = new UE.Rotator(0, 0, 0);
|
||||
let spawnTransform = new UE.Transform();
|
||||
spawnTransform.SetLocation(spawnLocation);
|
||||
spawnTransform.SetRotation(spawnRotation.Quaternion());
|
||||
|
||||
let tickActor = UE.GameplayStatics.BeginDeferredActorSpawnFromClass(
|
||||
world,
|
||||
TSTickActor.StaticClass(),
|
||||
spawnTransform
|
||||
) as TSTickActor;
|
||||
UE.GameplayStatics.FinishSpawningActor(tickActor, spawnTransform);
|
||||
|
||||
console.log('--------------------------TSTickActor spawned----------------------')
|
||||
+19
-19
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"D:/MiceCola/Projects/AncientCivil/TypeScript/entry.ts": {
|
||||
"version": "fdcb7aa1d16b12d6171a4020b7624560",
|
||||
"version": "b1cd767eea65f4ecc585ee93cd754dda",
|
||||
"processed": true,
|
||||
"isBP": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/cpp/index.d.ts": {
|
||||
"version": "dd956b7a3c07de56359cbfa4bee0cf05",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ffi/index.d.ts": {
|
||||
"version": "a371a5609d4ee418c7557ae5aa47afae",
|
||||
"processed": false
|
||||
@@ -12,6 +16,14 @@
|
||||
"version": "d50bfedc76d792b10b1643a43a4ffd6b",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/react-umg/index.d.ts": {
|
||||
"version": "646f0cb810568f8eab5ba1f09cc88037",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/node_modules/@types/react/index.d.ts": {
|
||||
"version": "a6386c71ac7ef6d48c8d05574cce1c20",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/index.d.ts": {
|
||||
"version": "b982801b3faba925e1d56c2d2cebd82a",
|
||||
"processed": false
|
||||
@@ -20,12 +32,16 @@
|
||||
"version": "b35c41fa7a5a7a2cde1b14a2577628f7",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/ue.d.ts": {
|
||||
"version": "ec461a2d572a9672fb5da0a67b629ca9",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/puerts_decorators.d.ts": {
|
||||
"version": "11c14fe8093e3773ebdc2c6b8a509977",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/node_modules/@types/react/index.d.ts": {
|
||||
"version": "a6386c71ac7ef6d48c8d05574cce1c20",
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/ue_bp.d.ts": {
|
||||
"version": "8a4adfd291c2689f547a023a91753059",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/node_modules/@types/react-reconciler/index.d.ts": {
|
||||
@@ -259,21 +275,5 @@
|
||||
"D:/MiceCola/Projects/AncientCivil/Content/JavaScript/PuertsEditor/node_modules/typescript/lib/lib.dom.iterable.d.ts": {
|
||||
"version": "977f6792324dbfc2fcc8eadc6f1b0452",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/cpp/index.d.ts": {
|
||||
"version": "dd956b7a3c07de56359cbfa4bee0cf05",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/react-umg/index.d.ts": {
|
||||
"version": "646f0cb810568f8eab5ba1f09cc88037",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/ue.d.ts": {
|
||||
"version": "ec461a2d572a9672fb5da0a67b629ca9",
|
||||
"processed": false
|
||||
},
|
||||
"D:/MiceCola/Projects/AncientCivil/Typing/ue/ue_bp.d.ts": {
|
||||
"version": "8a4adfd291c2689f547a023a91753059",
|
||||
"processed": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user