How to create a realistic flying clay pigeon

Hi!

I would need some script or logic for letting clay pigeons fly for a targeter game.
The pigeons shall start form two fixed points, which one is decided randomly.
The pigeons shall vary in their start direction and strength, the height is always the same.
The pigeons are rigidbodies.
Right now i am starting the piegeons like this:

float randomXValue = Random.Range(-2, 2);
float randomZValue = Random.Range(1.5f, 4);
rigidbody.AddForce(randomXValue, 2, randomZValue, ForceMode.Impulse);

The problem is now, that the flight curve doesn’t look like a pigeon you know from movies.
The rigidbody is set as follows:

mass = 0.175
drag = 0.7
angular drag = 0.05
uses gravity
collision is cont. dynamic
no constraints

Maybe someone of you knows a way to do a realistic flight behaviour for a clay pigeon.

br hoffmanuel

This is a script I created from your example:

using UnityEngine;

public class ClaySpawner : MonoBehaviour {

	public GameObject clay;
	public float nextSpawn = 3f;
	public bool secondClay = false;

	void Update () {
		nextSpawn -= Time.deltaTime;
		if (nextSpawn <= 0)
		{
			SpawnClay ();
		}
	}

	void SpawnClay ()
	{
		if (secondClay)
		{
			nextSpawn = Random.Range(3f, 7f);
			secondClay = false;
		} else {
			nextSpawn = 0.1f;
			secondClay = true;
		}
		
		GameObject tempClay = Instantiate(clay, new Vector3(this.transform.position.x, this.transform.position.y, this.transform.position.z), new Quaternion(0, 0, 0, 0), this.transform.parent);

		float randomXValue = Random.Range(-2, 2);
		float randomZValue = Random.Range(1.5f, 4);
		tempClay.GetComponent<Rigidbody>().AddForce(randomXValue, 4, randomZValue, ForceMode.Impulse);
	}
}

With the values
124613-rigidbody.png