就目前这个版本来说。
第一步:检测碰撞。这是程序内置的计算,不会反映在脚本之中。值得一提的是,ally unit只会与enemy weapon碰撞,而enemy unit只会与ally unit碰撞。
weapon可以通过更改weapon的Weapon.Side这个内置脚本变量进行换边。unit不允许换边。
如果检测到了碰撞。这里会有两个处理:
1,unit:
如果unit的脚本包含【OnHit】脚本块,碰撞响应由【OnHit】处理。具体来说,启动OnHit线程(名为OnHit),输入参数为(DeltaPosx,DeltaPosy,DeltaPosZ,DamageType,DamageValue)。(即碰撞点距离unit中心的偏移向量,与伤害的类型和值)。
如果不包含【OnHit】,并且,如果伤害类型为0(普通),则按默认的伤害值来扣血,一旦血低于0,则自动启动【OnDestroy】脚本。如果伤害类型不为0,则忽略。
2,weapon:
同理。如果武器包含【OnCollide】脚本,则转到【OnCollide】之中进行处理。如果不包含【OnCollide】脚本,并且武器的【穿透属性】不为真,则自动调用【OnDestroy】脚本。