Is there a way creating mostly typical gameobjets than doing it manually?

I want to create over 100 game objects , They all have the same type of collider and same scripts attached to them , the only difference is they are different sprites(different shapes ) .Even inside the animator controller they have the same states and same transitions . is there any way to do that than doing it manually and individually for every game object ?

Make a prefab of it. Instantiate whenever you want by hand or code in runtime, update the sprite.

Another thing you can do is to do a ScriptableObject in which you store the sprite you want and some other uncommon stuff. Make the prefab as above, and in a script of the prefab you make a reference to a instance of your ScriptableObject. Something like :

public class MyScriptableObject : ScriptableObject
{
	public Texture2D texture;
}

And then

public class MyPrefab : MonoBehaviour
{
	[SerializeField]
	private MyScriptableObject scriptableObject;
	[SerializeField]
	private SpriteRenderer mySpriteComponent;

    void Start()
    {
		// Update the sprite of your prefab instance
		mySpriteComponent.sprite = Sprite.Create( scriptableObject.texture, new Rect( 0, 0, scriptableObject.texture.width, scriptableObject.texture.height), new Vector2( 0.5f, 0.5f) );
		// Update other stuff that are uncommon
		// ...
	}
}

using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif

[CreateAssetMenu()]
public class CardFactory : ScriptableObject
{
    public Sprite[] Sprites;
    public GameObject CardPrefab;

    public void CreateCards()
    {
        for (int i = 0; i < Sprites.Length; i++)
        {
            GameObject card = Instantiate(CardPrefab);
            card.GetComponentInChildren<SpriteRenderer>().sprite = Sprites*;*

#if UNITY_EDITOR
Undo.RegisterCreatedObjectUndo(card, “Created card”);
if (!Application.isPlaying)
UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene());
#endif
}
}
}

#if UNITY_EDITOR
[CustomEditor(typeof(CardFactory))]
public class CardFactoryEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if( GUILayout.Button(“Create Cards”))
{
(target as CardFactory).CreateCards();
}
}
}
#endif
1. Place the script above inside a file called CardFactory
2. Create a new CardFactory scriptable object (“Assets” > “Create” > “CardFactory”)
3. Fill the sprites into the array (you can lock the inspector, select all your sprites using the left-mouse button while the SHIFT or CTRL key is pressed, and drop the sprites into the Sprites array
4. Provide the card prefab
5. Hit the Create Cards button in the inspector of the scriptable object if you want to create the cards at edit time, or call the CreateCards function of the scriptable object if you need to create the card at runtime