public void UpdateTracer(UpdateWeaponStreamTracerByStreamHitEvent evt, WeaponStreamTracerStreamHitNode weapon) { StreamHitComponent streamHit = weapon.streamHit; GameObject tracer = weapon.weaponStreamTracerEffect.Tracer; WeaponStreamTracerBehaviour component = tracer.GetComponent<WeaponStreamTracerBehaviour>(); if (streamHit.StaticHit != null) { component.TargetPosition = MathUtil.WorldPositionToLocalPosition(streamHit.StaticHit.Position, tracer); } else if ((streamHit.TankHit != null) && weapon.Entity.HasComponent<StreamHitTargetLoadedComponent>()) { UpdateWeaponStreamTracerByTargetTankEvent eventInstance = new UpdateWeaponStreamTracerByTargetTankEvent { WeaponStreamTracerBehaviour = component, Hit = streamHit.TankHit, WeaponStreamTracerInstance = tracer }; base.ScheduleEvent(eventInstance, streamHit.TankHit.Entity); } }
public void UpdateTracer(UpdateWeaponStreamTracerByTargetTankEvent evt, HullNode tank) { GameObject hullInstance = tank.hullInstance.HullInstance; Vector3 position = MathUtil.LocalPositionToWorldPosition(evt.Hit.LocalHitPoint, hullInstance); evt.WeaponStreamTracerBehaviour.TargetPosition = MathUtil.WorldPositionToLocalPosition(position, evt.WeaponStreamTracerInstance); }