[程式] UE4 ProjectileComponent的初始速度设定

楼主: yekdniw (yekdniw)   2017-12-28 01:42:15
网页版
http://yekdniwunrealengine.blogspot.tw/2017/12/projectile-movement-
componentinitial.html
缩短网址
https://goo.gl/oGhBm2
最近在使用projectile movement component (以下简称PMC)的时候遇到一个问题
如果一个Actor挂了一个PMC来做移动的运算,但是这个移动的运算可能是由事件触发,
而且移动的初速度可能也是一个变量,根据事件当时计算的结果会有不一样的初速度。
然而经过测试发现有以下几个问题:
1. 只有在Actor的construction script 或是PMC的default值设定initial speed才会
生效,其他事后的设定都是无效的。
[图1]
在default值设定初始速度,有效。
[图2]
在Construction Script设定初始速度,有效。
[图3]
在BeginPlay或任何其他地方设定初始速度,无效,会以construction script或是
default值设定的值为准。
2. 对PMC disable component active之后再enable component active会影响到整个
移动的运作。
以上方的图举例初速度是1500,第一次active会用1500的速度喷出去,可是如果
disable active之后再enable,速度就会变成0。
有关第一点,追查原始码之后才发现初始速度只有在InitializeComponent的时候使用
其余程式码都没用到这个值,也间接证实了比BeginPlay早呼叫的Construction Script
设值是有用的。因为呼叫时间的先后顺序应该是
Construction Script -> InitializeComponent -> BeginPlay。
但是有了这段code之后也代表initial speed其实可以自己处理,就如同程式码
说明的一样。只是把目前的velocity乘上 speed而已。
所以下图的写法等同于设定初速度~(为了偷
懒safeNormal我就不在图中作了)
[图4]
第二点的话,推测是停掉之后velocity被设为0,所以再开启的时候速度也被重设了。如
果想要延续停掉前的速度,可能要自己记下来,然后在重新开启的时候重新把之前的
velocity设回去。
作者: damody (天亮damody)   2017-12-28 08:51:00
123

Links booklink

Contact Us: admin [ a t ] ucptt.com