欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

本文實例為大家分享了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)用畫貝斯?fàn)柧€
 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>目標(biāo)點
/// <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>目標(biāo)點
/// <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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#短時間內(nèi)產(chǎn)生大量不重復(fù)的隨機(jī)數(shù)

    C#短時間內(nèi)產(chǎn)生大量不重復(fù)的隨機(jī)數(shù)

    在C#編程中,經(jīng)常會碰到產(chǎn)生隨機(jī)數(shù)的情況,并且是在短時間內(nèi)產(chǎn)生一組隨機(jī)數(shù)。如果這組隨機(jī)數(shù)中有大量重復(fù)的,則達(dá)不到我們的要求
    2013-02-02
  • Unity中協(xié)程IEnumerator的使用方法介紹詳解

    Unity中協(xié)程IEnumerator的使用方法介紹詳解

    本文主要介紹了Unity中協(xié)程IEnumerator的使用方法介紹詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#使用FtpWebRequest與FtpWebResponse完成FTP操作

    C#使用FtpWebRequest與FtpWebResponse完成FTP操作

    這篇文章介紹了C#使用FtpWebRequest與FtpWebResponse完成FTP操作的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Unity3D繪制地形的實現(xiàn)方法

    Unity3D繪制地形的實現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了Unity3D繪制地形的實現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#實現(xiàn)文件篩選讀取并翻譯的自動化工具

    C#實現(xiàn)文件篩選讀取并翻譯的自動化工具

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)文件篩選及讀取內(nèi)容,并翻譯的自動化工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • C#使用SqlConnection連接到SQL Server的代碼示例

    C#使用SqlConnection連接到SQL Server的代碼示例

    這篇文章主要介紹了C#使用SqlConnection連接到SQL Server的代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Winform窗體縮放下使用剪切板功能出現(xiàn)頁面閃動解決分析

    Winform窗體縮放下使用剪切板功能出現(xiàn)頁面閃動解決分析

    這篇文章主要介紹了Winform窗體縮放下使用剪切板功能出現(xiàn)頁面閃動解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • C#?從字符串中分離文件路徑、文件名及擴(kuò)展名的操作

    C#?從字符串中分離文件路徑、文件名及擴(kuò)展名的操作

    在C#中,處理文件時經(jīng)常需要分離文件路徑、文件名和擴(kuò)展名,通過使用Microsoft.Win32命名空間和字符串處理方法如Substring、IndexOf()和LastIndexOf(),可以有效地獲取和操作這些信息,本文介紹C#?字符串中分離文件路徑,感興趣的朋友一起看看
    2024-09-09
  • C# DataTable使用方法詳解

    C# DataTable使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了C# DataTable的使用方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 詳解C#的排列組合

    詳解C#的排列組合

    本文詳細(xì)介紹了C#中的排列組合以及具體實現(xiàn)代碼,如下所示,希望對大家有所幫助
    2016-11-11

最新評論