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;
        }
Exemple #3
0
        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);
            }
        }