Exemple #1
0
    private void OnDrawGizmos()
    {
#if UNITY_EDITOR
        GizmosUtils.SetT(transform);
        GizmosUtils.DrawArrow(Vector3.zero, GForce, GForce.magnitude, Color.magenta);
#endif
    }
    private void OnDrawGizmos()
    {
        Gizmos.color = Color.blue.WithAlpha(0.3f);
        GizmosUtils.DrawSquareGrid(transform.position, GetSpawnSquareSize(), _maxMobsPerWave);

        GizmosUtils.DrawText(CustomEditorPrefs.GizmoGuiSkin, "spawnpoint:\n" + ((_prefab != null) ? _prefab.name : "prefab=null"),
                             transform.position, Color.cyan,
                             (int)(CustomEditorPrefs.GizmoGuiSkin.GetStyle("Label").fontSize *0.8));
    }
Exemple #3
0
    private void OnDrawGizmos()
    {
        var node = m_root;

        if (node == null)
        {
            return;
        }

        var coners = node.Rect.Coners;

        Gizmos.color = Color.red;
        GizmosUtils.Draw2DLine(coners[0], coners[1]);
        GizmosUtils.Draw2DLine(coners[1], coners[2]);
        GizmosUtils.Draw2DLine(coners[2], coners[3]);
        GizmosUtils.Draw2DLine(coners[3], coners[0]);

        List <QuadTreeNode> openList = new List <QuadTreeNode>
        {
            node
        };

        List <QuadTreeNode> leafNodes = new List <QuadTreeNode>();


        while (openList.Count > 0)
        {
            var curnode = openList[0];
            openList.RemoveAt(0);

            var children = curnode.Children;
            if (children != null)
            {
                openList.AddRange(children);
            }
            else
            {
                leafNodes.Add(curnode);
            }
        }

        Gizmos.color = Color.blue;
        for (int i = 0; i < leafNodes.Count; i++)
        {
            var curNode = leafNodes[i];
            if (curNode == m_root)
            {
                continue;
            }

            coners = curNode.Rect.Coners;
            GizmosUtils.Draw2DLine(coners[0], coners[1]);
            GizmosUtils.Draw2DLine(coners[1], coners[2]);
            GizmosUtils.Draw2DLine(coners[2], coners[3]);
            GizmosUtils.Draw2DLine(coners[3], coners[0]);
        }
    }
    private void OnDrawGizmos()
    {
        bool isRectInersctWithCircle  = m_circle.IntersectWith(m_rect);
        bool isFanIntersectWithCircle = m_fan.IntersectWith(m_circle);
        bool isFanIntersectWithRect   = m_fan.IntersectWith(m_rect);


        Color rectColor;

        if (isRectInersctWithCircle)
        {
            rectColor = m_intersectCol;
        }
        else
        {
            rectColor = m_colors[0];
        }
        GizmosUtils.DrawRectSolid(m_rect, rectColor);
        GizmosUtils.DrawRect(m_rect.Extand(m_circle.m_radius, m_circle.m_radius), rectColor);

        Color circleColor;

        if (isRectInersctWithCircle || isFanIntersectWithCircle)
        {
            circleColor = m_intersectCol;
        }
        else
        {
            circleColor = m_colors[1];
        }
        GizmosUtils.DrawCircle(m_circle, circleColor);


        Color fanColor;

        if (isFanIntersectWithCircle || isFanIntersectWithRect)
        {
            fanColor = m_intersectCol;
        }
        else
        {
            fanColor = m_colors[2];
        }
        GizmosUtils.DrawFan(m_fan, fanColor);


        if (m_circle.ContainPoint(m_point) || m_rect.ContainPoint(m_point) || m_fan.ContainPoint(m_point))
        {
            Gizmos.color = m_intersectCol;
        }
        else
        {
            Gizmos.color = m_colors[3];
        }
        GizmosUtils.DrawPoint(m_point);
    }
    public void OnDrawGizmos()
    {
        Gizmos.color = Color.yellow;
        Vector3 currentPos = transform.position;

        foreach (var waypoint in Adjacents)
        {
            Vector3 otherPos = waypoint.transform.position;

            GizmosUtils.DrawArrow2D(currentPos, otherPos);
        }
    }
    private void OnDrawGizmos()
    {
#if UNITY_EDITOR
        GizmosUtils.SetT(transform);
        GizmosUtils.DrawArrow(Vector3.zero, Thrust, Thrust.magnitude / GizmosThrustDivider, Color.white);
        GizmosUtils.SetTR(transform);
        GizmosUtils.DrawArrow(Vector3.zero, Vector3.right, PropellerLength, Color.white);
        GizmosUtils.DrawArrow(Vector3.zero, Vector3.left, PropellerLength, Color.white);
        GizmosUtils.DrawArrow(Vector3.zero, Vector3.up, PropellerLength, Color.white);
        GizmosUtils.DrawArrow(Vector3.zero, Vector3.down, PropellerLength, Color.white);
#endif
    }
Exemple #7
0
        private void OnDrawGizmos()
        {
            if (collider == null)
            {
                return;
            }

            Color color = !enabled ? Color.red
                              : State == States.Inactive ? Color.black
                                : Color.green;

            GizmosUtils.DrawCollider(this.transform, collider, color);
        }
Exemple #8
0
        protected virtual void OnDrawGizmosSelected()
        {
            if (Application.isPlaying && m_Debug && m_IsActive)
            {
                Gizmos.color = m_DebugSettings.CenterColor;
                Gizmos.DrawRay(m_ObjectDetector.position, m_ObjectDetector.forward * m_CheckCoverLength);

                Gizmos.color = m_HighCover ? m_DebugSettings.CenterColor : m_DebugSettings.ChangeStateColor;
                Gizmos.DrawRay(m_HighCoverDetector.position, m_HighCoverDetector.forward * m_CheckCoverLength);

                Gizmos.color = Color.cyan;
                Gizmos.DrawSphere(rotationCheckPosition, 0.1f);

                Gizmos.DrawRay(rotationCheckPosition, m_ObjectDetector.forward);


                Gizmos.color = Color.red;
                Gizmos.DrawRay(m_ObjectDetector.position, moveDirection);

                if (m_LeftCoverPopup && m_RightCoverPopup)
                {
                    Gizmos.color = m_CanPopLeft ?  m_DebugSettings.ChangeStateColor : m_DebugSettings.LeftColor;
                    Gizmos.DrawRay(m_LeftCoverPopup.position, m_LeftCoverPopup.forward * m_CheckCoverLength);
                    //Gizmos.DrawCube(m_LeftCoverPopup.position, d_GizmoCubeSize);
                    Gizmos.DrawSphere(m_LeftCoverPopup.position, m_DebugSettings.GizmoSize);
                    GizmosUtils.DrawString("Left Cover", m_LeftCoverPopup.position + Vector3.up * 0.5f, Color.black);
                    if (m_CanPopLeft)
                    {
                        Gizmos.color = m_DebugSettings.LeftColor;
                        Gizmos.DrawWireSphere(m_StopPosition, 0.25f);
                    }


                    Gizmos.color = m_CanPopRight ? m_DebugSettings.ChangeStateColor : m_DebugSettings.RightColor;
                    Gizmos.DrawRay(m_RightCoverPopup.position, m_RightCoverPopup.forward * m_CheckCoverLength);
                    //Gizmos.DrawCube(m_RightCoverPopup.position, d_GizmoCubeSize);
                    Gizmos.DrawSphere(m_RightCoverPopup.position, m_DebugSettings.GizmoSize);
                    GizmosUtils.DrawString("Right Cover", m_RightCoverPopup.position + Vector3.up * 0.5f, Color.black);
                    if (m_CanPopRight)
                    {
                        Gizmos.color = m_DebugSettings.RightColor;
                        Gizmos.DrawWireSphere(m_StopPosition, 0.25f);
                    }
                }
            }
        }
Exemple #9
0
        //protected Vector3 CalculateVelocity( Vector3 target, Vector3 origin, float time )
        //{
        //    //  Define the distance x and y first.
        //    Vector3 distance = target - origin;
        //    Vector3 distanceXZ = distance;
        //    distanceXZ.y = 0;


        //    //  Create a float that repsents our distance
        //    float verticalDistance = distance.y;              //  vertical distance
        //    float horizontalDistance = distanceXZ.magnitude;   //  horizontal distance


        //    //  Calculate the initial velocity.  This is distance / time.
        //    float velocityXZ = horizontalDistance / time;
        //    float velocityY = (verticalDistance / time) + 0.5f * Mathf.Abs(Physics.gravity.y) * time;



        //    Vector3 result = distanceXZ.normalized;
        //    result *= velocityXZ;
        //    result.y = velocityY;

        //    return result;
        //}



        protected virtual void OnDrawGizmos()
        {
            if (Application.isPlaying && m_IsActive && m_Debug)
            {
                //Gizmos.color = Color.green;
                //Gizmos.DrawRay(m_Transform.position + (Vector3.up * m_CheckHeight), m_Transform.forward * m_MoveToVaultDistance);

                Gizmos.color = Color.magenta;
                Gizmos.DrawWireSphere(startPosition, 0.15f);

                Gizmos.color = Color.cyan;
                GizmosUtils.DrawMarker(endEdgeOffset, 0.15f, Color.cyan);

                Gizmos.color = Color.yellow;
                Gizmos.DrawWireSphere(endPosition, 0.15f);
            }
        }
        protected virtual void DrawGizmos()
        {
            if (m_DrawDebugLine)
            {
                Gizmos.color = Color.green;
                Gizmos.DrawRay(transform.position + Vector3.up * 1.5f, LookDirection);
                GizmosUtils.DrawText(GUI.skin, "LookDirection", transform.position + Vector3.up * 1.5f + LookDirection, Color.green);

                Gizmos.color = Color.blue;
                Gizmos.DrawRay(RaycastOrigin, m_MoveDirection);
                Gizmos.color = Color.green;
                GizmosUtils.DrawArrow(RaycastOrigin, m_Rigidbody.velocity);
                GizmosUtils.DrawText(GUI.skin, "Velocity", RaycastOrigin + transform.forward, Color.green);
            }

            GizmosUtils.DrawText(GUI.skin, Movement.ToString(), transform.position + Vector3.up * 1.8f, Color.black);
        }
 private void OnDrawGizmos()
 {
     GizmosUtils.DrawText(GUI.skin, " " + id, transform.position + Vector3.down * 1.5f, Color.yellow, 16, 0);
     if (destinationScene.ScenePath == this.gameObject.scene.path)
     {
         PortalComponent destinationPortalRef = PortalComponentCache.GetPortal(destinationId);
         if (destinationPortalRef != null)
         {
             GizmosUtils.DrawArrow(transform.position, destinationPortalRef.transform.position, Color.yellow, 2.0f);
         }
     }
     else if (destinationScene.ScenePath != string.Empty)
     {
         Gizmos.color = Color.yellow;
         Gizmos.DrawWireSphere(transform.position, 0.7f);
         Gizmos.DrawWireSphere(transform.position, 0.5f);
     }
 }
Exemple #12
0
    void OnDrawGizmos()
    {
        if (result == null)
        {
            return;
        }

        Gizmos.color = Color.yellow;
        for (int i = 0; i < result.clusters.Length; i++)
        {
            if (showClustered)
            {
                Color color = Color.HSVToRGB(1f * i / result.clusters.Length, 1f, 1f);
                Gizmos.color = color;
            }
            for (int j = 0; j < result.clusters[i].Length; j++)
            {
                GizmosUtils.DrawText(GUI.skin, i.ToString(), new Vector3(data[result.clusters[i][j]].x, 0, data[result.clusters[i][j]].y), Gizmos.color, 10);
            }
        }
    }
Exemple #13
0
        private void OnDrawGizmos()
        {
            if (Application.isPlaying)
            {
                if (m_DebugDrawLookRay)
                {
                    if (m_LookAtPoint != Vector3.zero)
                    {
                        Gizmos.color = Color.cyan;
                        Gizmos.DrawLine(m_Transform.position + Vector3.up * 1.35f, m_LookAtPoint);
                        Gizmos.DrawSphere(m_LookAtPoint, 0.1f);
                    }

                    if (m_controller.Aiming)
                    {
                        Gizmos.color = Color.magenta;
                        Gizmos.DrawRay(m_AimPivot.position, (m_AimPivot.forward * 50));
                        GizmosUtils.DrawString("Aim Direction", m_AimPivot.position, Color.magenta);
                    }
                }
            }
        }
    void OnDrawGizmos()
    {
        if (result == null)
        {
            return;
        }

        Gizmos.color = Color.yellow;
        for (int i = 0; i < result.clusters.Length; i++)
        {
            if (showClustered)
            {
                Color color = Color.HSVToRGB(1f * i / result.clusters.Length, 1f, 1f);
                //color.a = 0.5f;
                Gizmos.color = color;
            }
            for (int j = 0; j < result.clusters[i].Length; j++)
            {
                //Gizmos.DrawSphere(data[result.clusters[i][j]], 0.1f);
                GizmosUtils.DrawText(GUI.skin, i.ToString(), data[result.clusters[i][j]], Gizmos.color, 10);
            }
        }
    }
Exemple #15
0
        protected virtual void OnDrawGizmos()
        {
            if (Application.isPlaying && m_isActive && m_Debug)
            {
                //Gizmos.color = Color.green;
                //Gizmos.DrawRay(m_transform.position + (Vector3.up * m_CheckHeight), m_transform.forward * m_MoveToVaultDistance);

                Gizmos.color = Color.magenta;
                Gizmos.DrawWireSphere(startPosition, 0.08f);

                Gizmos.color = Color.cyan;
                GizmosUtils.DrawMarker(startReach, 0.12f, Color.cyan);

                Gizmos.color = Color.cyan;
                GizmosUtils.DrawMarker(endReach, 0.12f, Color.cyan);

                Gizmos.color = Color.yellow;
                Gizmos.DrawWireSphere(endPosition, m_collider.radius * 0.5f);


                //motionPath.DrawMotionPath();
            }
        }
Exemple #16
0
    public static bool IntersectWith(Fan _fan, Rectangle _rect)
    {
        //条件一:矩形四个角落的判断
        var coners = _rect.Coners;

        for (int i = 0; i < 4; i++)
        {
            if (_fan.ContainPoint(coners[i]))
            {
                return(true);
            }
        }
        //条件二:扇形的两个边点落在矩形内
        if (_rect.ContainPoint(_fan.Left))
        {
            return(true);
        }
        if (_rect.ContainPoint(_fan.Right))
        {
            return(true);
        }
        //条件三:彼此中心点
        if (_rect.ContainPoint(_fan.m_center))
        {
            return(true);
        }
        if (_fan.ContainPoint(_rect.m_center))
        {
            return(true);
        }

        //条件四,矩形的边和弧相交
        var begin = _fan.m_center;
        var end   = _rect.m_center;
        var v     = end - begin;
        //圆的方程(x - xc)^2 + ( y - yc ) ^ 2 = r^2
        //线段的方程
        // x = v.x * t + begin.x
        // y = v.y * t + begin.y

        //求扇形圆心和矩形的中心线段


        //把线段方程代入可以得到一个二次方程
        //把它化为形如 a * x^2 + 2 * b * x + c = 0

        //如果 x 有解,说明相交,无解
        //b^2 - a *c >= 0,有解

        var dx    = _fan.m_center.x - begin.x;
        var dy    = _fan.m_center.y - begin.y;
        var sqr_r = _fan.Length * _fan.Length;

        var   a   = v.x * v.x + v.y * v.y;
        var   b   = -(dx * v.x + dy * v.y);
        var   c   = dx * dx + dy * dy - sqr_r;
        var   d   = b * b - a * c;
        Color old = Gizmos.color;

        Gizmos.color = Color.white;
        Gizmos.DrawLine(begin.ToXZ(), end.ToXZ());
        Gizmos.color = old;
        if (d >= 0) // 有解
        {
            var t = (-b + Mathf.Sqrt(d)) / a;

            var x     = v.x * t + begin.x;
            var y     = v.y * t + begin.y;
            var point = new Vector2(x, y);
            GizmosUtils.DrawPoint(point);
            //扇形只会包含其中一个解
            var left  = _fan.Left;
            var right = _fan.Right;


            if (_rect.ContainPoint(point) && point.Between(_fan.m_center, left, right))
            {
                return(true);
            }

            //另一个方向
            t     = (-b + Mathf.Sqrt(d)) / a;
            x     = v.x * t + begin.x;
            y     = v.y * t + begin.y;
            point = new Vector2(x, y);
            GizmosUtils.DrawPoint(point);

            if (_rect.ContainPoint(point) && point.Between(_fan.m_center, left, right))
            {
                return(true);
            }
        }
        else
        {
            //无解,说明要么扇形包含矩形中心,要么矩形包含扇形圆心,否则就不相交
        }

        return(false);
    }
Exemple #17
0
    public void DrawGizmos(bool selected)
    {
        if (debugSettings == null)
        {
            return;
        }

        Color color = debugSettings.defaultColor;

        switch (spawnType)
        {
        case SpawnType.SpawnOnly:
            color = debugSettings.spawnColor;
            break;

        case SpawnType.RespawnOnly:
            color = debugSettings.respawnColor;
            break;

        default:
            color = debugSettings.defaultColor;
            break;
        }

        if (!selected)
        {
            //color.a = color.a * 0.25f;
            color = debugSettings.defaultColor;
        }


        if (Event.current.type == EventType.Repaint)
        {
            Gizmos.color = color;
            if (selected)
            {
                Gizmos.DrawSphere(transform.position, debugSettings.gizmoSize);
            }

            Gizmos.DrawWireSphere(transform.position, radius);



            if (selected)
            {
                Color diskColor = color;
                diskColor.a = color.a * 0.2f;
                UnityEditor.Handles.color = diskColor;
                UnityEditor.Handles.DrawSolidDisc(transform.position, transform.up, radius);
            }


            UnityEditor.Handles.color = color;

            UnityEditor.Handles.ArrowHandleCap(
                0,
                transform.position + transform.up * radius,
                Quaternion.LookRotation(transform.forward),
                radius,
                EventType.Repaint);



            var displayText = gameObject.name + "\n" + transform.position.ToString();
            GizmosUtils.DrawString(displayText, transform.position + Vector3.up, debugSettings.textColor);
        }
    }
Exemple #18
0
 public void OnDrawGizmos()
 {
     GizmosUtils.SetT(transform);
     GizmosUtils.DrawArrow(Vector3.zero, CounterSlipForce, CounterSlipForce.magnitude / GizmosThrustDivider);
 }
    private void OnDrawGizmos()
    {
#if UNITY_EDITOR
        if (controlMode == VisualizationColor.Static)
        {
            Gizmos.color = new Color(0.529f, 0.808f, 0.922f, 0.6f);
        }
        else
        {
            Gizmos.color = new Color(0.906f, 0.576f, 0.443f, 0.6f);
        }

        // Width and depth of surface
        float width = transform.lossyScale.x, depth = transform.lossyScale.z;

        // Project wind on UP/FORWARD plane of wing
        Vector3 WindProjection = Vector3.ProjectOnPlane(-Wind, transform.right);


        void renderSurface()
        {
            GizmosUtils.DrawPlane(Vector3.zero, new Vector2(width, depth), Color.black);
        }

        void renderArrows()
        {
            GizmosUtils.DrawArrow(Vector3.zero, DragForce, DragForce.magnitude / GizmosDragDivisor, Color.red);
            GizmosUtils.DrawArrow(Vector3.zero, LiftForce, LiftForce.magnitude / GizmosLiftDivisor, Color.blue);

            if (showWorldWind)
            {
                GizmosUtils.DrawArrow(Vector3.zero, manager.environment.CalculateWind(transform.position), manager.environment.CalculateWind(transform.position).magnitude, Color.cyan);
            }

            if (showFront)
            {
                GizmosUtils.DrawArrow(Vector3.zero, transform.forward, 1, Color.yellow);
            }

            if (showWind)
            {
                GizmosUtils.DrawArrow(-Wind, Wind, Wind.magnitude, Color.green);
            }

            if (showWindSpeedFront)
            {
                GizmosUtils.DrawLine(transform.forward, WindProjection.normalized, Color.grey);
                GizmosUtils.DrawArrow(WindProjection, -WindProjection, WindProjection.magnitude, Color.magenta);
            }
        }

        // Render plane with rotation, arrows global space
        GizmosUtils.SetTR(transform);
        renderSurface();
        GizmosUtils.SetT(transform);
        renderArrows();


        // Render plane static with rotating forces
        if (showLocalSpaceCopy)
        {
            Gizmos.matrix = Matrix4x4.TRS(transform.position + Vector3.right * 4, Quaternion.identity, Vector3.one);
            renderSurface();
            Gizmos.matrix = Matrix4x4.TRS(transform.position + Vector3.right * 4, Quaternion.Inverse(transform.rotation), Vector3.one);
            renderArrows();
        }
#endif
    }
Exemple #20
0
 private void OnDrawGizmos()
 {
     GizmosUtils.SetT(transform);
     Gizmos.DrawSphere(Vector3.zero, 2.0f);
     GizmosUtils.DrawArrow(Vector3.zero, transform.forward, 5.0f);
 }
Exemple #21
0
 private void OnDrawGizmos()
 {
     Gizmos.color = Color.red.WithAlpha(0.3f);
     GizmosUtils.DrawRect(GetBounds(), 20, 15);
 }
Exemple #22
0
 private void OnDrawGizmos()
 {
     GizmosUtils.DrawText(GUI.skin, transform.name, transform.position, textColor, fontSize, yOffset);
 }
Exemple #23
0
 private void OnDrawGizmos()
 {
     GizmosUtils.DrawText(CustomEditorPrefs.GizmoGuiSkin, name, transform.position);
 }
Exemple #24
0
 private void OnDrawGizmos()
 {
     GizmosUtils.DrawFan(m_fan, m_color);
 }
Exemple #25
0
 void OnDrawGizmosSelected()
 {
     Gizmos.color = Color.green;
     GizmosUtils.DrawRect(SceneBounds.ToRect());
 }
 private void OnDrawGizmos()
 {
     Gizmos.color = Color.blue.WithAlpha(0.3f);
     GizmosUtils.DrawSquareGrid(transform.position, GetSpawnSquareSize(), _maxMobsPerWave);
 }