void FixedUpdate()
    {
        if (Time.time > birthtime + lifeTime)
        {
            ProjectileFactory.Restock(this);
            return;
        }
        if (Physics.Raycast(transform.position, transform.forward, out hitinfo, speed * Time.fixedDeltaTime, targetLayerMask | wallMask))
        {
            CharacterEntity hitCharacter = hitinfo.transform.GetComponent <CharacterEntity>();
            if (hitCharacter != null)
            {
                hitCharacter.TakeDamage(damage);
            }

            ProjectileFactory.Restock(this);
            return;
        }
        transform.position += transform.forward * speed * Time.fixedDeltaTime;
    }