• unity gizmo绘制圆形帮助调试


    using UnityEngine;
    using System.Collections;
    using System;
    
    public class LearnGrazio : MonoBehaviour {
        public Transform m_Transform;
        public float m_Radius = 1; // 圆环的半径
        public float m_Theta = 0.1f; // 值越低圆环越平滑
        public Color m_Color = Color.green; // 线框颜色
    
        void Start()
        {
            if (m_Transform == null)
            {
                throw new Exception("Transform is NULL.");
            }
        }
    
        void OnDrawGizmos()
        {
            if (m_Transform == null) return;
            if (m_Theta < 0.0001f) m_Theta = 0.0001f;
    
            // 设置矩阵
            Matrix4x4 defaultMatrix = Gizmos.matrix;
            Gizmos.matrix = m_Transform.localToWorldMatrix;
    
            // 设置颜色
            Color defaultColor = Gizmos.color;
            Gizmos.color = m_Color;
    
            // 绘制圆环
            Vector3 beginPoint = Vector3.zero;
            Vector3 firstPoint = Vector3.zero;
            for (float theta = 0; theta < 2 * Mathf.PI; theta += m_Theta)
            {
                float x = m_Radius * Mathf.Cos(theta);
                float y = m_Radius * Mathf.Sin(theta);
                Vector3 endPoint = new Vector3(x, y, 0);
                if (theta == 0)
                {
                    firstPoint = endPoint;
                }
                else
                {
                    Gizmos.DrawLine(beginPoint, endPoint);
                }
                beginPoint = endPoint;
            }
    
            // 绘制最后一条线段
            Gizmos.DrawLine(firstPoint, beginPoint);
    
            // 恢复默认颜色
            Gizmos.color = defaultColor; 
    
            // 恢复默认矩阵
            Gizmos.matrix = defaultMatrix;
        }
    }
    
  • 相关阅读:
    源代码的下载和编译
    Git使用入门
    搭建Android开发环境
    安卓系统移植与驱动开发概述
    第十章
    第九章
    第八章
    第七章读书笔记
    第六章读书笔记
    第五章读书笔记
  • 原文地址:https://www.cnblogs.com/yufenghou/p/5745783.html
Copyright © 2020-2023  润新知