17 UE4蓝图:蓝图通信、自定义事件和类型转换

17 UE4蓝图:蓝图通信、自定义事件和类型转换,第1张

本次我们通过自定义事件,来让小人进入一个区域得到加速,在离开区域的时候失去加速。其中用到自定义事件,蓝图通信和类型转换。

下面大家跟着看图说话:

1: 我们先在世界大纲中点编辑第三人称蓝图:

2:在我的蓝图中,新增,新加加速图表,并在里面右键 添加自定义事件:

3: 事件起名为触发加速Event,并把角色的移动拉到蓝图中,对最大行走速度来设置。

最后把Max Walk Speed拉给事件,这样触发事件的时候需要输入参数。

4:接下来我们在碰撞事件中转换对象和触发该事件。

我们借用之前的出发开门的蓝图,转换对象和触发事件如图:

这样,只有第三人称的角色对象碰撞到本碰撞体时,就会执行触发事件到角色对象上,看图说话:设置对象的最大行走速度为1000.

这样,我们的蓝图之间的通信就完成了。我们的角色就可以健步如飞了~

添加按钮监听。回见内容写成方法,然后调用即可。大概像下面这样

importjava.awt.event.ActionEvent

importjava.awt.event.ActionListener

importjavax.swing.JButton

publicclassTest{

publicstaticvoidmain(String[]args){

JButtonA=newJButton("A")

JButtonB=newJButton("B")

JButtonC=newJButton("C")

A.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

methodA()

}

})

B.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

methodB()

}

})

C.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

methodA()

methodB()

}

})

}

publicstaticvoidmethodA(){

//执行A方法

}

publicstaticvoidmethodB(){

//执行B方法

}

}

追问:

是这样的,我想做成这样:

一个JFrame页面,该页面有三个按钮A、B、C;当我点击按钮A,执行事件A;当我点击按钮B,执行事件B;当我点击按钮C,执行事件A和事件B两个事件。该页面是与数据库相连的,当我进入的时候,从数据库去取一个数据(该数据有三个值A、B、C)。执行程序的时候,如果从数据库取到的数是A,自动执行按钮A的事件(我并没有点击按钮A);取到什么值,执行的就是相对应的按钮的事件。

回答:

JFrame的代码我就不写给你了,那个代码量太大了。就算我写了这里也贴不下。

我不明白你到底想做什么。既然根据从数据库中取出来的值执行方法,那你这三个按钮的意义又在哪里呢?

不过不管你要写成什么样的,总体过程是没变的。首先你可以先从数据库中取数据,然后根据取出来的数据做个判断,用if-else也行,switch-case也行,生成不同的分支,然后写A和B两个方法,根据分支选择执行A或者B。

这样有什么难的嘛?

追问:

JAVA自动点击 按钮的代码怎么写。 Delphi 中,程序自动点击某个按钮A,我只要陪写上 A.Click;程序就会执行按钮A的事件。请问一下:Java 中也可以这样么?JAVA写成A.Click就报错。我是想先从数据库取值,自动执行界面上的按钮的事件,当我点击按钮的时候,我会修改数据库的值。我就是想让程序打开的时候,得到上次程序执行的事件。

回答:

因为已经将处理事务的过程写成方法了,所以你只需要直接调用哪个方法即可。java里没有自动点击按钮的方法,但是可以自动调用方法。比如你在加载完这个界面后直接调用methodA(),那不就和自动点击A没区别了吗?

追问:

这个methodA()就是A的事件,这个按钮A的事件是:

这个就是那个按钮的事件,我怎么调用这个事件使他自动执行事件的 *** 作。

回答:

抽取成方法啊。比如下面代码:

publicvoidactionPerformed(ActionEvente){

inta=0

intb=0

intc=a+b

}你可以将代码变成这样:

publicvoidactionPerformed(ActionEvente){

methodA()

}

privatevoidmethodA(){

inta=0

intb=0

intc=a+b

}当需要自动调用的时候直接调用methodA()即可。

给按钮点击添加事件。

在Designer标签页面中,选中 “按钮”,在详情面板最下方或在Graph标签页面中,选中 “按钮”,在详情面板最下方点击 “+” 即可绑定相应的事件。

UE4,即虚幻4,它是一套为开发实时技术而存在的引擎工具。目前广泛应用于3D建模渲染、游戏开发中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11854775.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存