Beispiel #1
0
        protected override void DrawDebugPoints()
        {
            if (m_debugPoints.Count == 0)
            {
                return;
            }
            STETilemap tilemap          = GetTargetTilemap();
            Vector2    cellSizeDiv2     = tilemap.CellSize / 2f;
            Vector2    realCellSizeDiv2 = tilemap.transform.TransformPoint(cellSizeDiv2);
            float      size             = Mathf.Min(realCellSizeDiv2.x, realCellSizeDiv2.y);
            Vector2    s0   = m_action.startPaintingPosition.Value;
            Vector2    s1   = m_action.endPaintingPosition.Value;
            Vector2    dir0 = s1 - s0;
            Vector2    dir1 = m_debugPoints[m_debugPoints.Count - 1] - m_debugPoints[0];
            int        idx  = Mathf.Sign(dir0.x) != Mathf.Sign(dir1.x) || Mathf.Sign(dir0.y) != Mathf.Sign(dir1.y) ?
                              m_debugPoints.Count - 1
                :
                              0;
            Vector2 c0 = tilemap.transform.TransformPoint(m_debugPoints[idx]);

            for (int i = 0; i < m_debugPoints.Count; ++i)
            {
                Vector2 p0 = tilemap.transform.TransformPoint(m_debugPoints[i]);
                EditorCompatibilityUtils.CircleCap(0, p0, Quaternion.identity, size);
                //Handles.Label(p0, i.ToString());
                if (i != idx)
                {
                    EditorCompatibilityUtils.CircleCap(0, 2 * c0 - p0, Quaternion.identity, size);
                }
            }
        }
        public override void OnSceneGUI()
        {
            base.OnSceneGUI();

            if (!m_tilemap && !m_tileset)
            {
                return;
            }

            Vector2 center = Vector2.zero;

            if ((ePositionType)m_action.positionType.Value == ePositionType.LocalPosition)
            {
                center = m_action.position.Value;
            }
            else// if ((ePositionType)positionType.Value == ePositionType.GridPosition)
            {
                if (m_tilemap)
                {
                    center = TilemapUtils.GetTileCenterPosition(m_tilemap, (int)m_action.position.Value.x, (int)m_action.position.Value.y);
                }
                else if (m_tileset)
                {
                    center = TilemapUtils.GetGridWorldPos((int)m_action.position.Value.x, (int)m_action.position.Value.y, m_tileset.TilePxSize / m_tileset.PixelsPerUnit);
                }
            }
            EditorCompatibilityUtils.CircleCap(0, center, Quaternion.identity, m_action.radius.Value);
        }
    //NOTE: comment this if you don't want to see the patrol path in the editor
#if UNITY_EDITOR
    void OnDrawGizmos()
    {
        if (Path != null && Selection.activeGameObject != gameObject)
        {
            for (int i = 0; i < Path.Count; ++i)
            {
                Vector3 vPathPos      = Path[i];
                Vector3 vWorldPathPos = BasePos + vPathPos;
                if (WrapMode == PatrolBehaviour.eMode.Loop || (i != (Path.Count - 1)))
                {
                    Handles.color = new Color(0.8f, 0.8f, 0.8f, 0.8f);
                    Handles.DrawLine(vWorldPathPos, BasePos + (Vector3)Path[(i + 1) % Path.Count]);
                    EditorCompatibilityUtils.SphereCap(0, vWorldPathPos, Quaternion.identity, 0.10f * HandleUtility.GetHandleSize(vPathPos));
                }
            }
        }
    }
        protected virtual void DrawDebugPoints()
        {
            if (m_debugPoints.Count == 0)
            {
                return;
            }
            STETilemap tilemap          = GetTargetTilemap();
            Vector2    cellSizeDiv2     = tilemap.CellSize / 2f;
            Vector2    realCellSizeDiv2 = tilemap.transform.TransformPoint(cellSizeDiv2);
            float      size             = Mathf.Min(realCellSizeDiv2.x, realCellSizeDiv2.y);

            for (int i = 0; i < m_debugPoints.Count; ++i)
            {
                Vector2 p0 = tilemap.transform.TransformPoint(m_debugPoints[i]);
                EditorCompatibilityUtils.CircleCap(0, p0, Quaternion.identity, size);
            }
        }
Beispiel #5
0
 void OnDrawGizmosSelected()
 {
     EditorCompatibilityUtils.CircleCap(0, transform.position, transform.rotation, DetectRadius);
 }
Beispiel #6
0
 private void OnDrawGizmosSelected()
 {
     EditorCompatibilityUtils.CircleCap(0, this.transform.position, this.transform.rotation, touchRadius);
 }
 void OnDrawGizmos()
 {
     EditorCompatibilityUtils.CircleCap(0, transform.position, transform.rotation, GravityField);
 }