GizMos

 void  OnDrawGizmos (){


     if (m_Theta < 0.0001f)
      {
         m_Theta = 0.0001f;
      }


    // 设置矩阵
    Matrix4x4 defaultMatrix  = Gizmos.matrix;
    Gizmos.matrix =GetComponent().localToWorldMatrix;


    // 设置颜色
    Color defaultColor  = Gizmos.color;
    Gizmos.color = m_Color;


    // 绘制圆环
    Vector3 beginPoint  = Vector3.zero;
    Vector3 firstPoint  = Vector3.zero;
    float theta  = 0;
    for (theta  = 0; theta < 2 * Mathf.PI; theta += m_Theta){
        float x = activeRange * Mathf.Cos(theta);
        float z = activeRange * Mathf.Sin(theta);
        Vector3 endPoint  = new Vector3(x, 0, z);
        if (theta == 0){
            firstPoint = endPoint;
        }
        else{
            
            Gizmos.DrawLine(beginPoint, endPoint);
        }
        beginPoint = endPoint;
    }


    // 绘制最后一条线段
    Gizmos.DrawLine(firstPoint, beginPoint);


    // 恢复默认颜色
    Gizmos.color = defaultColor;


    // 恢复默认矩阵
    Gizmos.matrix = defaultMatrix;


}

你可能感兴趣的:(unity,unity)