// Deep copy constructor
    public Uni2DEditorSpriteSettings(Uni2DEditorSpriteSettings a_rSpriteSettings)
    {
        this.textureContainer = new Texture2DContainer(a_rSpriteSettings.textureContainer);                     // Deep copy
        this.atlas            = a_rSpriteSettings.atlas;
        this.sharedMaterial   = a_rSpriteSettings.sharedMaterial;

        this.renderMesh             = a_rSpriteSettings.renderMesh;
        this.usePhysicBuildSettings = a_rSpriteSettings.usePhysicBuildSettings;

        this.spriteScale       = a_rSpriteSettings.spriteScale;
        this.pivotType         = a_rSpriteSettings.pivotType;
        this.pivotCustomCoords = a_rSpriteSettings.pivotCustomCoords;
        this.vertexColor       = a_rSpriteSettings.vertexColor;
        this.physicsMode       = a_rSpriteSettings.physicsMode;
        this.collisionType     = a_rSpriteSettings.collisionType;
        this.isKinematic       = a_rSpriteSettings.isKinematic;

        this.renderMeshAlphaCutOff            = a_rSpriteSettings.renderMeshAlphaCutOff;
        this.renderMeshPolygonizationAccuracy = a_rSpriteSettings.renderMeshPolygonizationAccuracy;
        this.renderMeshPolygonizeHoles        = a_rSpriteSettings.renderMeshPolygonizeHoles;

        this.alphaCutOff            = a_rSpriteSettings.alphaCutOff;
        this.extrusionDepth         = a_rSpriteSettings.extrusionDepth;
        this.polygonizationAccuracy = a_rSpriteSettings.polygonizationAccuracy;
        this.polygonizeHoles        = a_rSpriteSettings.polygonizeHoles;

        this.renderMeshGridHorizontalSubDivs = a_rSpriteSettings.renderMeshGridHorizontalSubDivs;
        this.renderMeshGridVerticalSubDivs   = a_rSpriteSettings.renderMeshGridVerticalSubDivs;

        this.skinQuality          = a_rSpriteSettings.skinQuality;
        this.boneInfluenceFalloff = a_rSpriteSettings.boneInfluenceFalloff;
    }
    // On init inspector
    public void OnInitInspector(Uni2DSprite a_rSpriteMesh)
    {
        SaveInspectorInitParameter(a_rSpriteMesh);

        // Parameters
        spriteTexture = a_rSpriteMesh.spriteTexture;
        textureAtlas = a_rSpriteMesh.textureAtlas;
        vertexColor = a_rSpriteMesh.VertexColor;
        physicMode = a_rSpriteMesh.physicMode;
        collisionType = a_rSpriteMesh.collisionType;
        isKinematic = a_rSpriteMesh.isKinematic;
        spriteScale = a_rSpriteMesh.spriteScale;
        pivotPointType = a_rSpriteMesh.pivotPointType;
        pivotPointCoords = a_rSpriteMesh.pivotPointCoords;
        alphaCutOff = a_rSpriteMesh.alphaCutOff;
        polygonizationAccuracy = a_rSpriteMesh.polygonizationAccuracy;
        polygonizeHoles = a_rSpriteMesh.polygonizeHoles;
        extrusionDepth = a_rSpriteMesh.extrusionDepth;

        // Info
        colliderTriangleCount  = a_rSpriteMesh.GetColliderTriangleCount();

        // Data
        spriteTextureWidth = a_rSpriteMesh.spriteTextureWidth;
        spriteTextureHeight = a_rSpriteMesh.spriteTextureHeight;
        spriteQuadMesh = a_rSpriteMesh.spriteQuadMesh;
        spriteQuadMaterial = a_rSpriteMesh.spriteQuadMaterial;
        meshCollidersList.Clear();
        if(a_rSpriteMesh.meshCollidersList != null)
        {
            meshCollidersList.AddRange(a_rSpriteMesh.meshCollidersList);
        }
        meshCollidersRootGameObject = a_rSpriteMesh.meshCollidersRootGameObject;
        meshColliderComponentsList.Clear();
        if(a_rSpriteMesh.meshColliderComponentsList != null)
        {
            meshColliderComponentsList.AddRange(a_rSpriteMesh.meshColliderComponentsList);
        }

        ms_bInspectorHasBeenInit = true;
    }
 // Save inspector
 public void SaveInspectorInitParameter(Uni2DSprite a_rSpriteMesh)
 {
     // Parameters
     m_rSpriteTextureInit = a_rSpriteMesh.spriteTexture;
     m_rTextureAtlasInit = a_rSpriteMesh.textureAtlas;
     m_oVertexColorInit = a_rSpriteMesh.VertexColor;
     m_ePhysicModeInit = a_rSpriteMesh.physicMode;
     m_eCollisionTypeInit = a_rSpriteMesh.collisionType;
     m_bIsKinematicInit = a_rSpriteMesh.isKinematic;
     m_fSpriteScaleInit = a_rSpriteMesh.spriteScale;
     m_ePivotPointTypeInit = a_rSpriteMesh.pivotPointType;
     m_f2PivotPointCoordsInit = a_rSpriteMesh.pivotPointCoords;
     m_fAlphaCutOffInit = a_rSpriteMesh.alphaCutOff;
     m_fPolygonizationAccuracyInit = a_rSpriteMesh.polygonizationAccuracy;
     m_bPolygonizeHolesInit = a_rSpriteMesh.polygonizeHoles;
     m_fExtrusionDepthInit = a_rSpriteMesh.extrusionDepth;
 }
	// Deep copy constructor
	public Uni2DEditorSpriteSettings( Uni2DEditorSpriteSettings a_rSpriteSettings )
	{
		this.textureContainer       = new Texture2DContainer( a_rSpriteSettings.textureContainer );	// Deep copy
		this.atlas                  = a_rSpriteSettings.atlas;
		this.sharedMaterial			= a_rSpriteSettings.sharedMaterial;
		
		this.renderMesh             = a_rSpriteSettings.renderMesh;
		this.usePhysicBuildSettings = a_rSpriteSettings.usePhysicBuildSettings;
		
		this.spriteScaleMode        = a_rSpriteSettings.spriteScaleMode;
		this.spriteScale            = a_rSpriteSettings.spriteScale;
		this.spriteScaleNotUniform  = a_rSpriteSettings.spriteScaleNotUniform;
		this.pivotType				= a_rSpriteSettings.pivotType;
		this.pivotCustomCoords		= a_rSpriteSettings.pivotCustomCoords;
		this.vertexColor            = a_rSpriteSettings.vertexColor;
		this.dimensionMode			= a_rSpriteSettings.dimensionMode;
		this.physicsMode            = a_rSpriteSettings.physicsMode;
		this.collisionType          = a_rSpriteSettings.collisionType;
		this.isKinematic            = a_rSpriteSettings.isKinematic;
		this.isTrigger				= a_rSpriteSettings.isTrigger;
	
		this.renderMeshAlphaCutOff            = a_rSpriteSettings.renderMeshAlphaCutOff;
		this.renderMeshPolygonizationAccuracy = a_rSpriteSettings.renderMeshPolygonizationAccuracy;
		this.renderMeshPolygonizeHoles = a_rSpriteSettings.renderMeshPolygonizeHoles;
	
		this.alphaCutOff            = a_rSpriteSettings.alphaCutOff;
		this.extrusionDepth         = a_rSpriteSettings.extrusionDepth;
		this.polygonizationAccuracy = a_rSpriteSettings.polygonizationAccuracy;
		this.polygonizeHoles        = a_rSpriteSettings.polygonizeHoles;
		
		this.onlyBorder = a_rSpriteSettings.onlyBorder;
		this.subdivide = a_rSpriteSettings.subdivide;
		this.subdivisionCount = a_rSpriteSettings.subdivisionCount;

		this.renderMeshGridHorizontalSubDivs = a_rSpriteSettings.renderMeshGridHorizontalSubDivs;
		this.renderMeshGridVerticalSubDivs   = a_rSpriteSettings.renderMeshGridVerticalSubDivs;

		this.skinQuality          = a_rSpriteSettings.skinQuality;
		this.boneInfluenceFalloff = a_rSpriteSettings.boneInfluenceFalloff;
	}