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

Unity實(shí)現(xiàn)物體運(yùn)動(dòng)軌跡的繪制

 更新時(shí)間:2021年09月12日 17:17:17   作者:飛翔的小鳥——  
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)物體運(yùn)動(dòng)軌跡的繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了unity物體運(yùn)動(dòng)軌跡繪制的具體代碼,供大家參考,具體內(nèi)容如下

① create empty,命名為LineRender

② 在Assects中新建材質(zhì),選擇Shader為Sprites/Default,并設(shè)置軌跡顏色,如下圖:

③ 選擇①中創(chuàng)建的object,添加Line Render屬性,然后將②中新建的材質(zhì)賦給該object,如下圖:

展開Line Render,拖動(dòng)Width可設(shè)置軌跡寬度

④ 創(chuàng)建c#腳本,拖至運(yùn)動(dòng)物體上,代碼如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class draw_orbit : MonoBehaviour
{
    // 繪制軌跡組件
    public LineRenderer line;
    public List<Vector3> points;
    // 讀取本地txt文件位置信息,改變物體位置
    string[] text_buf;
    int i = 0;
    // Start is called before the first frame update
    void Start()
    {
     // 物體位置控制方法根據(jù)自己需求來,我這里是從txt文件讀取位置信息然后更新
        TextAsset ta = Resources.Load("satellite_orbit") as TextAsset;
        string text = ta.text;
        text_buf = text.Split('\n');
    }

    // Update is called once per frame
    void Update()
    {
        try
        {
            if (i < text_buf.Length)
            {
                // 讀取坐標(biāo)信息
                string[] line = text_buf[i].Split(',');
                float x = Convert.ToSingle(line[0])/1000;
                float y = Convert.ToSingle(line[1])/1000;
                float z = Convert.ToSingle(line[2])/1000;
                // 更新物體位置
                transform.position = new Vector3(x, y, z);
                // 繪制軌跡
                AddPoints();
            }
            i++;
        }
        catch(Exception ex) {
            Debug.Log(ex.Message);
        }
        
    }

    // 繪制軌跡方法
    public void AddPoints()
    {
        Vector3 pt = transform.position;
        if (points.Count > 0 && (pt - lastPoint).magnitude < 0.1f)
            return;
        if (pt != new Vector3(0, 0, 0))
            points.Add(pt);

        line.positionCount = points.Count;
        if (points.Count > 0)
            line.SetPosition(points.Count - 1, lastPoint);
    }
    public Vector3 lastPoint
    {
        get
        {
            if (points == null)
                return Vector3.zero;
            return (points[points.Count - 1]);
        }
    }
}

⑤ 選中運(yùn)動(dòng)物體,可以看到其Script組件中出現(xiàn)Line Render屬性,將①中的object拖進(jìn)去,如下圖:

⑥ 運(yùn)行場景,可以看到如下效果:

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

相關(guān)文章

  • C#難點(diǎn)逐個(gè)擊破(9):類型轉(zhuǎn)換

    C#難點(diǎn)逐個(gè)擊破(9):類型轉(zhuǎn)換

    類型之間的轉(zhuǎn)換可以分為隱式轉(zhuǎn)換與顯式轉(zhuǎn)換,如int類型可直接轉(zhuǎn)換為long類型。
    2010-02-02
  • 詳解c# Emit技術(shù)

    詳解c# Emit技術(shù)

    這篇文章主要介紹了c# Emit技術(shù)的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C#實(shí)現(xiàn)的XML操作類實(shí)例

    C#實(shí)現(xiàn)的XML操作類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的XML操作類,涉及C#操作XML文件的讀取、插入、修改、刪除等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#自定義基于控制臺(tái)的Timer實(shí)例

    C#自定義基于控制臺(tái)的Timer實(shí)例

    這篇文章主要介紹了C#自定義基于控制臺(tái)的Timer實(shí)現(xiàn)方法,可以簡單模擬timer控件的相關(guān)功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#多線程編程詳解

    C#多線程編程詳解

    C#提供了豐富的多線程操作,為編程帶來了極大的便利,但如果使用不當(dāng)也會(huì)帶來各種各樣的麻煩。本篇文章主要介紹了C#多線程,有需要的可以了解一下。
    2016-11-11
  • 詳解C#如何讀寫config配置文件

    詳解C#如何讀寫config配置文件

    這篇文章主要介紹了詳解C#如何讀寫config配置文件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • Unity3D快速入門教程

    Unity3D快速入門教程

    本文講述了Unity3D如何快速入門,包含Unity3D游戲引擎介紹,學(xué)習(xí)歷程和Unity3D快速入門的途徑,通過該篇文章的講解,希望能夠讓你更好的去學(xué)習(xí)Unity3D引擎
    2021-06-06
  • C# FileStream讀寫的文本操作代碼分析

    C# FileStream讀寫的文本操作代碼分析

    這篇文章主要分享了個(gè)人使用C# FileStream實(shí)現(xiàn)的讀寫的文本操作的小程序,主要是復(fù)習(xí)下對(duì)filestream的理解,希望對(duì)大家學(xué)習(xí)C#能夠有所幫助
    2016-07-07
  • C#中環(huán)境變量示例詳解

    C#中環(huán)境變量示例詳解

    環(huán)境變量是操作系統(tǒng)中存儲(chǔ)的一種機(jī)制,用于保存與操作系統(tǒng)環(huán)境和應(yīng)用程序運(yùn)行相關(guān)的配置信息,在 C# 中,可以使用 Environment.GetEnvironmentVariable 方法來獲取特定環(huán)境變量的值,下面給大家介紹C#中環(huán)境變量示例代碼,一起看看吧
    2024-05-05
  • 改進(jìn)c# 代碼的五個(gè)技巧(二)

    改進(jìn)c# 代碼的五個(gè)技巧(二)

    這篇文章主要介紹了改進(jìn)c# 代碼的五個(gè)技巧(二),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01

最新評(píng)論