docs.unity3d.com
    Show / Hide Table of Contents

    Struct ProfilerMarker<TP1, TP2>

    Use ProfilerMarker<TP1, TP2> to mark up script code blocks for the Unity Profiler.

    You can pass two integral or floating point parameters alongside the Begin event. The following types are supported as parameters:

    • int
    • uint
    • long
    • ulong
    • float
    • double
    Namespace: Unity.Profiling
    Syntax
    public readonly struct ProfilerMarker<TP1, TP2>
        where TP1 : struct where TP2 : struct
    Type Parameters
    Name Description
    TP1

    Type of the first parameter.

    TP2

    Type of the second parameter.

    Constructors

    ProfilerMarker(String, String, String)

    Constructs the ProfilerMarker that belongs to the generic ProfilerCategory.Scripts category.

    Declaration
    public ProfilerMarker(string name, string param1Name, string param2Name)
    Parameters
    Type Name Description
    String name

    Name of a marker.

    String param1Name

    Name of the first parameter.

    String param2Name

    Name of the second parameter.

    Remarks

    Does nothing in Release Players.

    ProfilerMarker(ProfilerCategory, String, String, String)

    Constructs a ProfilerMarker.

    Declaration
    public ProfilerMarker(ProfilerCategory category, string name, string param1Name, string param2Name)
    Parameters
    Type Name Description
    ProfilerCategory category

    Profiler category.

    String name

    Name of a marker.

    String param1Name

    Name of the first parameter.

    String param2Name

    Name of the second parameter.

    Remarks

    Does nothing in Release Players.

    Methods

    Auto(TP1, TP2)

    Profiles a piece of code enclosed within a using statement.

    Declaration
    public readonly ProfilerMarker<TP1, TP2>.AutoScope Auto(TP1 p1, TP2 p2)
    Parameters
    Type Name Description
    TP1 p1

    The first context parameter.

    TP2 p2

    The second context parameter.

    Returns
    Type Description
    Unity.Profiling.ProfilerMarker.AutoScope<>

    IDisposable struct which calls End on Dispose.

    Remarks

    Returns null in Release Players.

    Examples
    using (profilerMarker.Auto(enemies.Count, blastRadius))
    {
        var blastRadius2 = blastRadius * blastRadius;
        for (int i = 0; i < enemies.Count; ++i)
        {
            var r2 = (enemies[i].Pos - blastPos).sqrMagnitude;
            if (r2 < blastRadius2)
                enemies[i].Dispose();
        }
    }

    Begin(TP1, TP2)

    Begins profiling a piece of code marked with the ProfilerMarker instance.

    Declaration
    public readonly void Begin(TP1 p1, TP2 p2)
    Parameters
    Type Name Description
    TP1 p1

    The first context parameter.

    TP2 p2

    The second context parameter.

    Remarks

    Does nothing in Release Players.

    End()

    Ends profiling a piece of code marked with the ProfilerMarker instance.

    Declaration
    public readonly void End()
    Remarks

    Does nothing in Release Players.

    In This Article
    • Constructors
      • ProfilerMarker(String, String, String)
      • ProfilerMarker(ProfilerCategory, String, String, String)
    • Methods
      • Auto(TP1, TP2)
      • Begin(TP1, TP2)
      • End()
    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023