本帖最后由 玩具店老板 于 2024-10-2 18:36 编辑
问题描述及使用流程:想实现玩家靠近NPC,NPC就播放一个打招呼的动作动画。
1、创建了一个NPC,和一个触发器。
2、创建了一个脚本【HelloTrigger】,挂载到了触发器上。
@Component
export default class HelloTrigger extends Script {
@Property({displayName:"NPC",capture:true})
private npc_id : string = ""
@Property({displayName:"打招呼动画"})
private greet_anim : string =""
protected async onStart(): Promise<void> {
AssetUtil.asyncDownloadAsset(this.greet_anim)
console.log("动画ID" + this.greet_anim);
if(SystemUtil.isClient()) {
console.log("NPC_id:"+this.npc_id);
let npc = GameObject.findGameObjectById(this.npc_id) as Character;
console.log("NPC:"+npc);
let trigger = this.gameObject as Trigger
console.log("代码执行了");
trigger.onEnter.add((obj :GameObject)=>{
if(obj == Player.localPlayer.character)
{
console.log("NPC播放动画");
let Hello_anim = npc.loadAnimation(this.greet_anim); // 给角色加载一个动画
console.log("动画时长 " + Hello_anim.length);
Hello_anim.play();
}
})
}
}
}
运行起来的问题:玩家靠近NPC,NPC并不播放对应动画动作。
但log输出日志,可以看到标记“npc播放动画”,还有这段动画的“时长”数据
请问这个要怎么去解决问题?
|