作者yekdniw (yekdniw)
看板GameDesign
标题[程式] UE4 ProjectileComponent的初始速度设定
时间Thu Dec 28 01:42:15 2017
网页版
http://yekdniwue.blogspot.tw/2017/12/projectile-movement-componentinitial.html
最近在使用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设回去。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.41.55
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1514396537.A.0DE.html
1F:推 damody: 123 12/28 08:51
※ 编辑: yekdniw (59.120.146.90 台湾), 07/15/2020 11:08:48