最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity UGUI控制text文字間距

 更新時間:2019年03月01日 11:50:34   作者:LazerYvTian  
這篇文章主要為大家詳細介紹了Unity UGUI控制text文字間距的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Unity ugui相比ngui,提供的功能少之又少,好多特性得需要自己實現(xiàn)。真不知道unity寫這個插件后來是不是就沒有更新過。發(fā)了句牢騷。如果我想控制文字的顯示間距,ngui 有兩種辦法。1:文字之間加空格。2:調(diào)節(jié)spacing 的x值。

但對于ugui,第二種方法卻沒有。以前我使用ngui,這種方法用的多了,也方便,因此很想也把它這個特性轉(zhuǎn)到ugui上。

思考了半天,最終想出來了解決方法,以下是實現(xiàn)方式:

1、定義擴展效果類

[RequireComponent(typeof(Text))]
public class Spacing : BaseMeshEffect
{
}

2、添加行間距,列間距(Text的行間距廢掉不用了),緩存頂點信息

[SerializeField]
 private float spacing_x;
 [SerializeField]
 private float spacing_y;
 
private List<UIVertex> mVertexList;

3、獲取相關(guān)文字的頂點信息數(shù)組,通過每六個定點信息代表一個文字來判斷列數(shù)。通過定點信息的橫坐標來判斷行數(shù)(這個想了半天才找出的解決方案。我先試的縱坐標,結(jié)果卻不那么好用,大伙把頂點的值打出來就明白了)。這樣通過修改文字的頂點的位置信息據(jù)解決了。下面是具體的實現(xiàn):

public override void ModifyMesh(VertexHelper vh)
  {
    if(spacing_x == 0 && spacing_y == 0) { return; }
    if (!IsActive()) { return; }
    int count = vh.currentVertCount;
    if (count == 0) { return; }
    if (mVertexList == null) { mVertexList = new List<UIVertex>(); }
    vh.GetUIVertexStream(mVertexList);
    int row = 1;
    int column = 2;
    List<UIVertex> sub_vertexs = mVertexList.GetRange(0, 6);
    float min_row_left = sub_vertexs.Min(v => v.position.x);
    int vertex_count = mVertexList.Count;
    for (int i = 6; i < vertex_count;)
    {
      if (i % 6 == 0)
      {
        sub_vertexs = mVertexList.GetRange(i, 6);
        float tem_row_left = sub_vertexs.Min(v => v.position.x);
        if (tem_row_left <= min_row_left)
        {
          min_row_left = tem_row_left;
          ++row;
          column = 1;
          //continue;
        }
      }
      for(int j=0;j<6;j++)
      {
        UIVertex vertex = mVertexList[i];
        vertex.position += Vector3.right * (column - 1) * spacing_x;
        vertex.position += Vector3.down * (row - 1) * spacing_y;
        mVertexList[i] = vertex;
        ++i;
      }
      ++column;
    }
    vh.Clear();
    vh.AddUIVertexTriangleStream(mVertexList);
  }

把這個腳本掛上去,修改spceing_x和spacing_y大伙就能看到效果。如果大伙有更好的實現(xiàn)方式,歡迎大家留言討論,完。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#如何實現(xiàn)圖片的剪裁并保存

    C#如何實現(xiàn)圖片的剪裁并保存

    基于c#實現(xiàn)圖片的裁剪并保存功能,實現(xiàn)方法非常簡單的,前端采用的cropper插件,但是在本文中沒有給大家多介紹,需要的朋友可以到腳本之家去查找這個插件。好了,如果大家對c#實現(xiàn)圖片裁剪并保存功能感興趣的朋友一起看看吧
    2016-11-11
  • C#在winform中實現(xiàn)數(shù)據(jù)增刪改查等功能

    C#在winform中實現(xiàn)數(shù)據(jù)增刪改查等功能

    本篇文章主要是介紹了C#在winform中操作數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)增刪改查,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • C#中定時任務(wù)被阻塞問題的解決方法

    C#中定時任務(wù)被阻塞問題的解決方法

    這篇文章主要給大家介紹了關(guān)于C#中定時任務(wù)被阻塞問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-11-11
  • 詳解Winform里面的緩存使用

    詳解Winform里面的緩存使用

    這篇文章主要介紹了Winform里面的緩存使用,有需要的朋友可以參考一下
    2014-01-01
  • C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個線程

    C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個線程

    本文主要介紹了C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個線程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • C#中添加窗口的步驟詳解

    C#中添加窗口的步驟詳解

    下面小編就為大家?guī)硪黄狢#中添加窗口的步驟詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • C#編寫Windows服務(wù)實例代碼

    C#編寫Windows服務(wù)實例代碼

    本篇文章主要介紹使用Microsoft Visual Studio2012可以很方便的創(chuàng)建一個Windows服務(wù),本例實現(xiàn)一個向D盤的txt文件里,寫入系統(tǒng)時間的Windows服務(wù)
    2013-10-10
  • 使用JsonConverter處理上傳文件的路徑問題

    使用JsonConverter處理上傳文件的路徑問題

    我們上傳一個文件,把文件保存到服務(wù)器上,會有一個明確的物理路徑,由于需要從前端訪問這個文件,還需要web服務(wù)器中的一個虛擬路徑,我們可以使用JsonConverter 來自動處理一下,這篇文章主要介紹了使用JsonConverter處理上傳文件的路徑,需要的朋友可以參考下
    2022-12-12
  • C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果

    C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果

    這篇文章主要介紹了C#利用反射技術(shù)實現(xiàn)去掉按鈕選中時的邊框效果,涉及C#針對窗口的參數(shù)設(shè)置技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • .NET使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫

    .NET使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫

    將Excel文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中不僅能夠提升數(shù)據(jù)處理的效率和準確性,還能極大地促進數(shù)據(jù)分析和決策制定的過程,本文將介紹如何在.NET平臺使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫中,需要的可以參考下
    2024-12-12

最新評論

宣恩县| 两当县| 菏泽市| 喀喇沁旗| 库伦旗| 镇原县| 额济纳旗| 兴宁市| 定边县| 启东市| 辽宁省| 资兴市| 黔西| 咸丰县| 岐山县| 杭锦后旗| 彭山县| 长宁县| 德化县| 石棉县| 江陵县| 资溪县| 姚安县| 桃园市| 兰溪市| 固原市| 乐陵市| 郸城县| 甘孜县| 太仓市| 西藏| 荥阳市| 内丘县| 伊通| 济阳县| 东乡族自治县| 澄城县| 弥勒县| 延长县| 黄山市| 康保县|