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

unity繪制一條流動的弧線(貝塞爾線)

 更新時間:2020年06月21日 10:52:34   作者:BBoy_Leon  
這篇文章主要為大家詳細介紹了unity繪制一條流動弧線的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了unity繪制一條流動弧線的具體代碼,供大家參考,具體內(nèi)容如下

最終效果

把下面腳本復(fù)制,直接拖上腳本,設(shè)置兩個點(物體)的位置
GameObject1是開始點的位置,GameObject2是結(jié)束點的位置

public Transform[] controlPoints;
public LineRenderer lineRenderer;
public float centerPoint =0.1f;

private int layerOrder = 0;
//生成弧線中間的點數(shù)
private int _segmentNum = 20;

//偏移
float m_offset;
float m_speed = 0.5f;

void Start()
{
 if (!lineRenderer)
 {
  lineRenderer = GetComponent<LineRenderer>();
 }
 lineRenderer.sortingLayerID = layerOrder;
 //調(diào)用畫貝斯爾線
 GetBeizerList(controlPoints[0].position, (controlPoints[0].position + controlPoints[1].position) * 0.5f + new Vector3(0, centerPoint, 0), controlPoints[1].transform.position, _segmentNum);
}

private void Update()
{
 m_offset = m_offset - m_speed * Time.deltaTime;
 //控制offset使材質(zhì)移動
 GetComponent<LineRenderer>().material.mainTextureOffset = new Vector2(m_offset, 0);
}

/// <summary>
/// 根據(jù)T值,計算貝塞爾曲線上面相對應(yīng)的點
/// </summary>
/// <param name="t"></param>T值
/// <param name="p0"></param>起始點
/// <param name="p1"></param>控制點
/// <param name="p2"></param>目標點
/// <returns></returns>根據(jù)T值計算出來的貝賽爾曲線點
private static Vector3 CalculateCubicBezierPoint(float t, Vector3 p0, Vector3 p1, Vector3 p2)
{
 float u = 1 - t;
 float tt = t * t;
 float uu = u * u;

 Vector3 p = uu * p0;
 p += 2 * u * t * p1;
 p += tt * p2;

 return p;
}

/// <summary>
/// 獲取存儲貝塞爾曲線點的數(shù)組
/// </summary>
/// <param name="startPoint"></param>起始點
/// <param name="controlPoint"></param>控制點
/// <param name="endPoint"></param>目標點
/// <param name="segmentNum"></param>采樣點的數(shù)量
/// <returns></returns>存儲貝塞爾曲線點的數(shù)組
public Vector3[] GetBeizerList(Vector3 startPoint, Vector3 controlPoint, Vector3 endPoint, int segmentNum)
{
 Vector3[] path = new Vector3[segmentNum];
 for (int i = 1; i <= segmentNum; i++)
 {
  float t = i / (float)segmentNum;
  Vector3 pixel = CalculateCubicBezierPoint(t, startPoint,
   controlPoint, endPoint);
  //設(shè)置lineRenderer的control Points
  lineRenderer.positionCount = i;
  lineRenderer.SetPosition(i - 1, pixel);
  //存儲Point
  path[i - 1] = pixel;
  Debug.Log(path[i - 1]);
 }
 return path;
}

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

相關(guān)文章

  • C#調(diào)用python腳本的方法詳解

    C#調(diào)用python腳本的方法詳解

    這篇文章主要為大家詳細介紹了C#調(diào)用python腳本的方法,文中通過示例代碼介紹的非常詳細,感興趣的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • C#動態(tài)加載dll擴展系統(tǒng)功能的方法

    C#動態(tài)加載dll擴展系統(tǒng)功能的方法

    這篇文章主要介紹了C#動態(tài)加載dll擴展系統(tǒng)功能的方法,涉及C#動態(tài)加載dll擴展的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Google.Protobuf工具在C#中的使用方法

    Google.Protobuf工具在C#中的使用方法

    本文詳細講解了Google.Protobuf工具在C#中的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • C#文件內(nèi)容檢索的功能實現(xiàn)代碼

    C#文件內(nèi)容檢索的功能實現(xiàn)代碼

    本文詳細介紹了如何構(gòu)建和優(yōu)化一個高效的文件內(nèi)容檢索系統(tǒng),包括索引構(gòu)建、多線程處理、文件監(jiān)控、搜索優(yōu)化、錯誤處理和日志記錄等方面的內(nèi)容,并提供了一個簡化的C#demo示例,感興趣的朋友一起看看吧
    2024-10-10
  • C#調(diào)用打印機實現(xiàn)打印

    C#調(diào)用打印機實現(xiàn)打印

    這篇文章介紹了C#調(diào)用打印機實現(xiàn)打印的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#使用異步流高效處理序列數(shù)據(jù)的方法詳解

    C#使用異步流高效處理序列數(shù)據(jù)的方法詳解

    C#中的異步流(Async Streams),異步流是C# 8.0引入的一個新特性,它允許你異步地處理序列數(shù)據(jù),非常適合處理大量數(shù)據(jù)或長時間運行的任務(wù),本文給大家介紹了C#使用異步流高效處理序列數(shù)據(jù)的方法步驟,需要的朋友可以參考下
    2024-11-11
  • C#使用分部類設(shè)計實現(xiàn)一個計算器

    C#使用分部類設(shè)計實現(xiàn)一個計算器

    分部類是C#4.5中的一個新特性,它的出現(xiàn)使得程序的結(jié)構(gòu)更加合理,代碼組織更加緊密,本文將使用分部類設(shè)計實現(xiàn)一個簡單的計算器,感興趣的小伙伴可以了解下
    2024-02-02
  • WPF自定義實現(xiàn)IP地址輸入控件

    WPF自定義實現(xiàn)IP地址輸入控件

    這篇文章主要給大家介紹了關(guān)于WPF自定義實現(xiàn)IP地址輸入控件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用WPF具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能實例

    C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能實例

    這篇文章主要介紹了C#利用Windows自帶gdi32.dll實現(xiàn)抓取屏幕功能,是C#程序設(shè)計中常見的一個重要技巧,需要的朋友可以參考下
    2014-08-08
  • C#使用iTextSharp操作PDF

    C#使用iTextSharp操作PDF

    這篇文章介紹了C#使用iTextSharp操作PDF的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06

最新評論

陆川县| 蓬溪县| 福建省| 顺平县| 顺平县| 确山县| 精河县| 乐山市| 平泉县| 吴忠市| 乐清市| 滨州市| 波密县| 湘西| 洪湖市| 嘉祥县| 扶余县| 苏尼特右旗| 大安市| 广德县| 兴城市| 新巴尔虎左旗| 凤凰县| 竹溪县| 湖州市| 乌兰察布市| 高安市| 明溪县| 清河县| 四会市| 沿河| 图木舒克市| 宜兰县| 大冶市| 富川| 郁南县| 阿鲁科尔沁旗| 牙克石市| 麦盖提县| 林州市| 九龙坡区|