Unityは、線を引きます

System.Collections.Genericを使用しました。
UnityEngineを使用しました。

/// <要約>オブジェクトの線が描かれている</要約>
パブリッククラスObjectDrawline:MonoBehaviour
{
    #regionデータAFFIRM

    プライベートLineRenderer lineRender = NULL;
    プライベートリスト<のVector3> linePoints =新しいリスト<のVector3>();
    プライベートリスト<ゲームオブジェクト> TARGETLIST =新しいリスト<ゲームオブジェクト>();
    プライベートブール値isDisplay =偽;

    #endregion

    #region Untiy機能

    プライベート無効アップデート()
    {
        場合(!isDisplay && lineRender = null)のUpdatPosition();
    }

    #endregion

    #regionパブリック関数

    公共ボイドの作成(BOOL isDisplay =偽、フロートラインサイズ= 1、材料物質= NULL)
    {
        this.isDisplay = isDisplay。
        lineRender = gameObject.AddComponent <LineRenderer>();
        セット(LINESIZE、材料);
    }

    公共ボイドセット(フロートラインサイズ、材質材料= NULL)
    {
        IF(lineRender == NULL)のリターン;
        lineRender.startWidth = LINESIZE。
        lineRender.endWidth = LINESIZE。
        lineRender.materialは材料=。
    }

    ます。public voidショー()
    {
        場合(lineRender == nullの)リターン。
        isDisplay =はtrue。
        lineRender.enabled = isDisplay。
    }

    ます。public void HID()
    {
        場合(lineRender == nullの)リターン。
        isDisplay = falseは、
        lineRender.enabled = isDisplay。
    }

    公共ボイドクリア()
    {
        linePoints.Clear()。
        targetList.Clear();
    }

    公共のボイドの追加(ゲームオブジェクトのターゲット)
    {
        targetList.Add(ターゲット)。
    }

    公共のボイドの削除(ゲームオブジェクトのターゲット)
    {
        targetList.Remove(ターゲット)。
    }

    削除公共ボイド()
    {
        (ゲームオブジェクト)を破壊します。
    }

    #endregion

    #regionプライベート関数

    プライベートボイドUpdatPosition()
    {
        IF(TARGETLIST == NULL || targetList.Count <2)リターン。

        linePoints.Clear();
        以下のために(INT iが= 0; I <targetList.Count; I ++)
        {
            IF(!TARGETLIST [I] = NULL)linePoints.Add(TARGETLIST [I] .transform.position)。
        }

        lineRender.SetPositions(linePoints.ToArray())。
    }

    #endregion

}

ユニティQQ交換基:299人の412 191学生はユニティ金利への参加を歓迎しています。

公開された22元の記事 ウォン称賛21 ビュー6252

おすすめ

転載: blog.csdn.net/a451319296/article/details/104381358