Exemple #1
0
        public void OnRenderGizmos(Transform transform, float standardMarkerSize, Vector3 offset, bool networkSelected, bool nodeSelected, ConnectionAsset selectedConnection, bool onlySelectedConnection)
        {
            if (target == null)
            {
                return;
            }

            if (networkSelected)
            {
                if (target is WaypointAsset)
                {
                    (( WaypointAsset )target).OnRenderGizmos(transform, standardMarkerSize, offset, networkSelected, nodeSelected, selectedConnection, true);
                }
                else
                {
                    target.OnRenderGizmos(transform, standardMarkerSize, offset, networkSelected, nodeSelected, selectedConnection);
                }
            }

            Gizmos.color = Color.red;
            Gizmos.DrawWireSphere(transform.position + offset + Position, standardMarkerSize);


            foreach (ConnectionAsset connection in Connections)
            {
                Vector3 from, to, vector, fromOffsetA, fromOffsetB, toOffsetA, toOffsetB;

                if (onlySelectedConnection && selectedConnection != connection)
                {
                    continue;
                }

                from        = Position + transform.position + Target.Network.Position;
                to          = connection.To.Position + transform.position + (( GridNodeAsset )connection.To).Target.Network.Position;
                vector      = to - from;
                fromOffsetA = from + vector.normalized + Vector3.Cross(vector, Vector3.up).normalized * -(connection.Width / 2.0f);
                fromOffsetB = from + vector.normalized + Vector3.Cross(vector, Vector3.up).normalized *(connection.Width / 2.0f);
                toOffsetA   = to - vector.normalized + Vector3.Cross(vector, Vector3.up).normalized * -(connection.Width / 2.0f);
                toOffsetB   = to - vector.normalized + Vector3.Cross(vector, Vector3.up).normalized *(connection.Width / 2.0f);

                Gizmos.color = (!networkSelected) ? Color.yellow : (selectedConnection == connection) ? Color.white : Color.green;

                Gizmos.DrawLine(fromOffsetA, toOffsetA);
                Gizmos.DrawLine(fromOffsetB, toOffsetB);
            }
        }