How can I implement the quaternion system and character movement more simple

I’m writing to ask some questions about the implementation of quaternion.
Currently I have a one set of animation that are looking right.
For animation looking left, I decided to flip the character reflects to players z axis.


[idle - initial state]


when looking left.

The problem is the quaternion. The bullet is supposed to be shoot along the mouse position, and rotated based on player position and mousePosition. this is actually awful situation because when I look left, the direction is opposite to the mouse Position (when looking right, no problem). How can I solve this problem?

I came up with two ideas one is using left animation so that not to invert the quaternion. (but it requires repetitive labor).

another idea is solve this problem in the quaternion… but I don’t have idea how to resolve this.
do you have any suggestion or better solution?

// this is the code for rotating the bullet.

 public void Shoot(Vector3 playerPos)
    {
        mouseClickedPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

        this.playerPos = playerPos;
        Vector3 transPos = new Vector3(mouseClickedPos.x - playerPos.x, mouseClickedPos.y - playerPos.y, 0);

        float angle;
        if (playerPos.y - mouseClickedPos.y > 0)
        {
            angle = -Vector3.Angle(new Vector3(1, 0, 0), transPos);
        }

        else
        {
            angle = Vector3.Angle(new Vector3(1, 0, 0), transPos);
        }


        transform.Rotate(new Vector3(0, 0, 1), angle);
        stop = false;
    }


hierarchy of the bullet. it is in the empty container Wind Object. When rotating the bullet, the code access to the container (parent obj), because in wind sprite, I couldn’t change the transform of the bullet because of the animation. it was fixed by the animation, so I’m looking for the way that looks like not flipping the quaternion.

Easiest way is to have a “hand” or “muzzle” point in the animated hierarchy that you flip over as well, via the animation process.

Then the bullet doesn’t care and takes its position and rotation from that object: regardless of whether you’re facing left or right, it will always be correct.

um… what does the hand point mean? in animation process?

Whatever you are using to decide where the bullet goes, make sure that thing (usually an extra blank “hand” or “muzzle” child object) gets flipped by the animation in synchrony with the character flipping.