蓝图学习-------07

物理性

使场景中的对象具有物理特性。

有质量,线性阻尼(阻碍其移动,可以是摩擦力),角阻尼(阻碍旋转),重力,

物理性设置面板同样在细节面板中。勾选模拟物理即可。注意勾选后,碰撞预设会自动设为PhysicsActor。

案例:

物理和碰撞结合的案例

一个具有物理性的box(cube2),碰到静态网格体,就让静态网格体销毁。

1.创建一个box,设置其物理性(勾选模拟物理)

2.打开其碰撞属性中的 “生成hit事件”。

3. 类型转换为******(cast to *******)  (cast to 节点能返回对象引用,获取到了蓝图对象,所以也能实现蓝图交互

(转换为节点起到了一个判断碰撞体是否是静态网格的作用。原理:hit事件节点中的other Actor有可能很多种,比如类对象,人等。other Actor将数据传给object,转换节点会判断能否转为staticmeshactor,可以则执行下一步,不行则从cast failed执行下一步。转换节点起到了类似过滤器的效果,把other actor传过来的数据中非staticmeshactor的对象都过滤掉了。所以它是一个大范围对象到小范围对象过程。)

参考文章:

类型转换:分为两种类型

1.隐式类型转换:如  整数可以和浮点数运算 (小范围可以自动升为大范围)

2.显示类型转换/强制类型转换

如:

1,苹果是水果 (小范围可以自动升为大范围)

2,水果是苹果 (大范围到小范围,需强制转换)

如果需要转换的类是指定的类,则转换成功执行下一步操作,如果转换失败则执行Cast Failed 后的操作。
————————————————
版权声明:本文为CSDN博主「懒猫睡大觉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lei_7103/article/details/102544798

 

 

4 。cube2自由落体,碰到地面。因为地板是staticmeshActor,所以地板消失了。cube2继续掉了下去。

 

改进案例:

一个具有物理性的box(cube2),碰到静态网格体,就让静态网格体销毁,达到2次也销毁自己。

使用了一个计数器,计数事件发生次数。添加了一个分支节点,有判断作用。

 

物理性在蓝图中相关的节点

1.Is Simulating Physics (正在模拟物理性) 。这个节点判断对象是否打开“模拟物理”属性,输出为布尔型。

2.Set Simulate Physics(设置模拟物理)。这个节点可以打开或关闭“模拟物理”属性,和细节面板中勾选类似。

(注意:调用is simulating physics 和set simulate physics节点时,它们都会自动连接到对象的组件上,因为它们的节点上已经标明:目标是Primitive component。 对象是由组件构成的,物理也是对象的组件之一。)

小案例:

按4,将对象是否具有物理性以文本形式打印出来。

或者按4,打开或者关闭“模拟物理”属性。

3.Add Impluse(添加冲量)节点。其有提示:将一个冲量添加到单个刚体。适用于单次实时爆发。

可以输入冲量(力)的方向。加了力若物体不动,可能是其质量太大,细节面板中减轻它。

 

4.Add Torque in **(添加扭矩)。扭矩即是旋转的力,会让物体旋转。 地面的摩擦力大不容易旋转,在空中更容易。

案例

制作一个蓝图box,具有物理属性。人碰到就被击飞,碰到非人对象就会失去物理性。

效果:碰到非人对象后,失去物理性。产生了类似黏在上面的视觉效果。而且因为doOnce的缘故,人再去碰撞它也不能将他物理性设置会存在。

改变:

让第二次人再碰到它时,使其物理性恢复并永远存在。即只能“粘一次”。 注意点:分支结构使用,doOnce的reset,计数器times。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值