一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Unity3D:Gizmos畫圓(原創(chuàng))

 雪柳花明 2016-09-07

Unity3D:Gizmos畫圓(原創(chuàng))

轉(zhuǎn)載請注明出處 何文西

Gizmos是場景視圖(Scene)里的一個可視化調(diào)試工具。在做項目過程中,我們經(jīng)常會用到它,例如:繪制一條射線等。

在Game視圖窗口是看不到你畫的圖形的。


Unity3D 4.2版本截至,目前只提供了繪制射線,線段,網(wǎng)格球體,實體球體,網(wǎng)格立方體,實體立方體,圖標(biāo),GUI紋理,以及攝像機(jī)線框。

如果需要繪制一個圓環(huán)還需要自己寫代碼。

復(fù)制代碼
using UnityEngine;
using System;

public class HeGizmosCircle : MonoBehaviour
{
       public Transform m_Transform;
       public float m_Radius = 1; // 圓環(huán)的半徑
       public float m_Theta = 0.1f; // 值越低圓環(huán)越平滑
       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;

              // 設(shè)置矩陣
              Matrix4x4 defaultMatrix = Gizmos.matrix;
              Gizmos.matrix = m_Transform.localToWorldMatrix;

              // 設(shè)置顏色
              Color defaultColor = Gizmos.color;
              Gizmos.color = m_Color;

              // 繪制圓環(huán)
              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 z = m_Radius * 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);

              // 恢復(fù)默認(rèn)顏色
              Gizmos.color = defaultColor;

              // 恢復(fù)默認(rèn)矩陣
              Gizmos.matrix = defaultMatrix;
       }
}
復(fù)制代碼

把代碼拖到一個GameObject上,關(guān)聯(lián)該GameObject的Transform,然后就可以在Scene視圖窗口里顯示一個圓了。

通過調(diào)整Transform的Position,Rotation,Scale,來調(diào)整圓的位置,旋轉(zhuǎn),縮放。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美一区二区三区五月婷婷 | 久草视频这里只是精品| 东京热男人的天堂一二三区| 亚洲日本中文字幕视频在线观看| 国产亚洲系列91精品| 亚洲综合天堂一二三区| 亚洲精品美女三级完整版视频| 色涩一区二区三区四区| 国产成人精品国产成人亚洲 | 91日韩欧美在线视频| 国产av精品高清一区二区三区| 熟女乱一区二区三区四区| 免费一级欧美大片免费看| 四季精品人妻av一区二区三区| 欧美国产在线观看精品| 男人的天堂的视频东京热| 亚洲一区二区亚洲日本| 欧美日韩少妇精品专区性色| 我的性感妹妹在线观看| 草草夜色精品国产噜噜竹菊| 久久热在线视频免费观看| 国产老女人性生活视频| 国产一区二区三区免费福利| 欧美日韩国产综合在线| 人妻人妻人人妻人人澡| 少妇人妻精品一区二区三区| 欧美国产日韩在线综合| 国产精品超碰在线观看| 91麻豆视频国产一区二区| 亚洲国产天堂av成人在线播放| 午夜亚洲少妇福利诱惑| 午夜资源在线观看免费高清| 青青操视频在线播放免费| 熟女体下毛荫荫黑森林自拍| 五月综合激情婷婷丁香| 国产一级内片内射免费看| 免费精品国产日韩热久久| 中国黄色色片色哟哟哟哟哟哟| 日本免费一级黄色录像| 久久99夜色精品噜噜亚洲av | 国产av一区二区三区麻豆|