private void Move(TankEntityView tankEntityView) { Vector3 input = tankEntityView.TankInputComponent.Input; Vector3 movement = tankEntityView.TransformComponent.Forward * input.z * tankEntityView.SpeedComponent.Speed * _Time.DeltaTime; tankEntityView.TransformComponent.Position = tankEntityView.PositionComponent.Position + movement; }
private void Turn(TankEntityView tankEntityView) { Vector3 input = tankEntityView.TankInputComponent.Input; float turn = input.x * tankEntityView.TurnSpeedComponent.TurnSpeed * _Time.DeltaTime; Quaternion turnRotation = Quaternion.Euler(0f, turn, 0f); tankEntityView.TransformComponent.Rotation = tankEntityView.TransformComponent.Rotation * turnRotation; }
private IEnumerator Tick() { while (true) { var tankEntityViews = entityViewsDB.QueryEntityViews <TankEntityView>(); var tankWeaponEntityViews = entityViewsDB.QueryEntityViews <TankWeaponEntityView>(); if (tankWeaponEntityViews.Count > 0) { for (int i = 0; i < tankWeaponEntityViews.Count; i++) { TankWeaponEntityView tankWeaponEntityView = tankWeaponEntityViews[i]; TankEntityView tankEntityView = tankEntityViews[i]; Charge(tankEntityView.TankInputComponent, tankWeaponEntityView.TransformComponent, tankWeaponEntityView.LaunchForceComponent, _Time); } } yield return(null); } }