【神奇代码岛】交互篇(玩家与模型的交互)

介绍

一款游戏中,一定少不了玩家与NPC的交互,所以今天这节课我们来讲一讲玩家如何与NPC进行交互

玩家交互

玩家交互方式有一下几种
输入 纯话语 选择

准备工作

现在地图中放置一些模型,作为我们的NPC
在这里插入图片描述
并且给他们命名
第一只鸡:
在这里插入图片描述
第二只鸡:
在这里插入图片描述
第三只鸡:
在这里插入图片描述
命好名之后,就可以开始编写代码了

编写代码

模型绑定
// 第一只鸡的模型绑定
const kun_1 = world.querySelector("#篮球鸡-1")
kun_1.enableInteract = true;//允许模型与玩家进行交互
kun_1.interactHint = "篮球鸡"; //设置模型头顶上的名字
kun_1.interactColor = new Box3RGBColor(1,0,0); //设置模型头顶上名字的颜色
kun_1.interactRadius = 3 //设置玩家与模型的交互距离
// 第二只鸡的模型绑定
const kun_2 = world.querySelector("#鸡尼太美-1")
kun_2.enableInteract = true;//允许模型与玩家进行交互
kun_2.interactHint = "篮球鸡"; //设置模型头顶上的名字
kun_2.interactColor = new Box3RGBColor(1,0,0); //设置模型头顶上名字的颜色
kun_2.interactRadius = 3 //设置玩家与模型的交互距离
// 第三只鸡的模型绑定
const kun_3 = world.querySelector("#鸡-1")
kun_3.enableInteract = true;//允许模型与玩家进行交互
kun_3.interactHint = "篮球鸡"; //设置模型头顶上的名字
kun_3.interactColor = new Box3RGBColor(1,0,0); //设置模型头顶上名字的颜色
kun_3.interactRadius = 3 //设置玩家与模型的交互距离
交互代码
纯话语交互
kun_1.onInteract(({entity})=>{
	entity.player.dialog({
		type:Box3DialogType.TEXT,// 交互类型(必须设置)
		title:kun_1.id,// 将标题设置为模型的名字(不一定要设置)
		lookEye:kun_1,// 交互时要看向的模型(可以是你设置的模型,也可以是玩家,可以不用设置,默认是看向玩家)
		lookTarget:entity,// 交互结束是要看向的模型(不一定要设置,默认是玩家)
		content:"你好,我是篮球鸡",// 交互内容(必须设置)
	})
})
输入型交互
kun_2.onInteract(({entity})=>{
	const result = entity.player.dialog({
		type:Box3DialogType.INPUT,//必须设置
		title:kun_2.id,//不一定要设置
		lookEye:kun_2,//不一定要设置
		lookTarget:entity,//不一定要设置
		content:"请输入我的名字:",//交互内容(不一定要设置)
	})
	if (result == "鸡尼太美"){
		console.log("你输入对了") // 如果输入正确,将会在控制台上答应“你输入对了”
	}
	else{
		console.log("你输入错了") // 如果输入不正确,将会在控制台上输出“你输入错了”
	}
})
选择型交互
kun_3.onInteract(({entity})=>{
	const result = entity.player.dialog({
		type:Box3DialogType.SELECT,
		title:kun_3.id,//不一定要设置
		lookEye:kun_3,//不一定要设置
		lookTarget:entity,//不一定要设置
		content:"请选择我的名字:",//交互内容(不一定要设置)
		options:['篮球鸡','鸡尼太美','鸡'], //这里设置了选项,选项数无限,必须设置
	})
	if (result.index == 0){// 选择第一个
		console.log("False") // 输入False
	}
	else if (result.index == 1){
		console.log("False") // 输出 False
	}
	else if (result.index == 2){ // 输出True
		console.log("True")
	}
})

总结

模型变量.onInteract(({entity})=>{})
如果是关于判断的交互,就得定义一个常量,用来接受玩家的选择或输入
比如(INPUT,SELECT)类型的要定义一个常量
TEXT可定义或不定义都可以,不会导致报错

今天的课程就到这里了,下节课见
记得点个关注呀!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值