Round() public static method

public static Round ( float f ) : float
f float
return float
コード例 #1
0
        /// <summary>
        /// Converts a Vector3 to a Vector3i.
        /// </summary>
        /// <returns>
        /// The vector3i.
        /// </returns>
        /// <param name='inputVector'>
        /// Input Vector3.
        /// </param>
        public static Vector3i Vector3ToVector3i(UnityEngine.Vector3 inputVector)
        {
            int iX, iY, iZ;

            iX = (int)Mathf.Round(inputVector.x);
            iY = (int)Mathf.Round(inputVector.y);
            iZ = (int)Mathf.Round(inputVector.z);
            return(new Vector3i(iX, iY, iZ));
        }
コード例 #2
0
        public void OnGUI()
        {
            if (!show || (!Application.isPlaying && !showInEditor))
            {
                return;
            }

            if (style == null)
            {
                style = new GUIStyle();
                style.normal.textColor = Color.white;
                style.padding          = new RectOffset(5, 5, 5, 5);
            }

            if (Time.realtimeSinceStartup - lastUpdate > 0.5f || cachedText == null || !Application.isPlaying)
            {
                lastUpdate = Time.realtimeSinceStartup;

                boxRect = new Rect(5, yOffset, 310, 40);

                text.Length = 0;
                text.AppendLine("A* Pathfinding Project Debugger");
                text.Append("A* Version: ").Append(AstarPath.Version.ToString());

                if (showMemProfile)
                {
                    boxRect.height += 200;

                    text.AppendLine();
                    text.AppendLine();
                    text.Append("Currently allocated".PadRight(25));
                    text.Append((allocMem / 1000000F).ToString("0.0 MB"));
                    text.AppendLine();

                    text.Append("Peak allocated".PadRight(25));
                    text.Append((peakAlloc / 1000000F).ToString("0.0 MB")).AppendLine();

                    text.Append("Last collect peak".PadRight(25));
                    text.Append((collectAlloc / 1000000F).ToString("0.0 MB")).AppendLine();


                    text.Append("Allocation rate".PadRight(25));
                    text.Append((allocRate / 1000000F).ToString("0.0 MB")).AppendLine();

                    text.Append("Collection frequency".PadRight(25));
                    text.Append(delta.ToString("0.00"));
                    text.Append("s\n");

                    text.Append("Last collect fps".PadRight(25));
                    text.Append((1F / lastDeltaTime).ToString("0.0 fps"));
                    text.Append(" (");
                    text.Append(lastDeltaTime.ToString("0.000 s"));
                    text.Append(")");
                }

                if (showFPS)
                {
                    text.AppendLine();
                    text.AppendLine();
                    var delayedFPS = delayedDeltaTime > 0.00001f ? 1F / delayedDeltaTime : 0;
                    text.Append("FPS".PadRight(25)).Append(delayedFPS.ToString("0.0 fps"));


                    float minFps = Mathf.Infinity;

                    for (int i = 0; i < fpsDrops.Length; i++)
                    {
                        if (fpsDrops[i] < minFps)
                        {
                            minFps = fpsDrops[i];
                        }
                    }

                    text.AppendLine();
                    text.Append(("Lowest fps (last " + fpsDrops.Length + ")").PadRight(25)).Append(minFps.ToString("0.0"));
                }

                if (showPathProfile)
                {
                    AstarPath astar = AstarPath.active;

                    text.AppendLine();

                    if (astar == null)
                    {
                        text.Append("\nNo AstarPath Object In The Scene");
                    }
                    else
                    {
        #if ProfileAstar
                        double searchSpeed = (double)AstarPath.TotalSearchedNodes * 10000 / (double)AstarPath.TotalSearchTime;
                        text.Append("\nSearch Speed	(nodes/ms)	").Append(searchSpeed.ToString("0")).Append(" (" + AstarPath.TotalSearchedNodes + " / ").Append(((double)AstarPath.TotalSearchTime / 10000F).ToString("0") + ")");
        #endif

                        if (ListPool <Vector3> .GetSize() > maxVecPool)
                        {
                            maxVecPool = ListPool <Vector3> .GetSize();
                        }
                        if (ListPool <GraphNode> .GetSize() > maxNodePool)
                        {
                            maxNodePool = ListPool <GraphNode> .GetSize();
                        }

                        text.Append("\nPool Sizes (size/total created)");

                        for (int i = 0; i < debugTypes.Length; i++)
                        {
                            debugTypes[i].Print(text);
                        }
                    }
                }

                cachedText = text.ToString();
            }


            if (font != null)
            {
                style.font     = font;
                style.fontSize = fontSize;
            }

            boxRect.height = style.CalcHeight(new GUIContent(cachedText), boxRect.width);

            GUI.Box(boxRect, "");
            GUI.Label(boxRect, cachedText, style);

            if (showGraph)
            {
                float minMem = float.PositiveInfinity, maxMem = 0, minFPS = float.PositiveInfinity, maxFPS = 0;
                for (int i = 0; i < graph.Length; i++)
                {
                    minMem = Mathf.Min(graph[i].memory, minMem);
                    maxMem = Mathf.Max(graph[i].memory, maxMem);
                    minFPS = Mathf.Min(graph[i].fps, minFPS);
                    maxFPS = Mathf.Max(graph[i].fps, maxFPS);
                }

                float line;
                GUI.color = Color.blue;
                // Round to nearest x.x MB
                line = Mathf.RoundToInt(maxMem / (100.0f * 1000));
                GUI.Label(new Rect(5, Screen.height - AstarMath.MapTo(minMem, maxMem, 0 + graphOffset, graphHeight + graphOffset, line * 1000 * 100) - 10, 100, 20), (line / 10.0f).ToString("0.0 MB"));

                line = Mathf.Round(minMem / (100.0f * 1000));
                GUI.Label(new Rect(5, Screen.height - AstarMath.MapTo(minMem, maxMem, 0 + graphOffset, graphHeight + graphOffset, line * 1000 * 100) - 10, 100, 20), (line / 10.0f).ToString("0.0 MB"));

                GUI.color = Color.green;
                // Round to nearest x.x MB
                line = Mathf.Round(maxFPS);
                GUI.Label(new Rect(55, Screen.height - AstarMath.MapTo(minFPS, maxFPS, 0 + graphOffset, graphHeight + graphOffset, line) - 10, 100, 20), line.ToString("0 FPS"));

                line = Mathf.Round(minFPS);
                GUI.Label(new Rect(55, Screen.height - AstarMath.MapTo(minFPS, maxFPS, 0 + graphOffset, graphHeight + graphOffset, line) - 10, 100, 20), line.ToString("0 FPS"));
            }
        }