LoginSignup
0
0

More than 3 years have passed since last update.

Unity LineRenderer の頂点数を指定する際に旧型式と怒られた話

Last updated at Posted at 2020-04-04

こんにちは。
今回はUnityで開発中に少しつまずいた事を紹介しようと思います。
とりあえず実装したかったのは、ただ線を描写したかったのです。しかし、Unityのバージョンアップの際にどうやら頂点数の指定方法に変更があったみたい。とりあえずどう変更されたのかを最初に書いていきます。

変更された構文

はい。見出し通り構文が変更されていたみたいです。下に比較して書いていきます。

バージョン 構文     例文
ver5.4以前 SetVertexCount([int]); Line.SetVertexCount(2);
ver5.5 numPositions = [int]; Line.numPositions = 2;
ver5.6以降 positionCount = [int]; Line.positionCount = 2;

上記の通りバージョン事に少しずつ違います。
何が厄介かというと、エラーではなく警告として怒られます。なので気づかない可能性があります。

例のソースコード

まずは警告されるコードを書いていきます。

sample.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DisplayLine : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 線オブジェクト設定
        LineRenderer line = gameObject.GetComponent<LineRenderer>();

        // 線の幅を指定
        line.startWidth = 0.1f;
        line.endWidth = 0.1f;

        // 頂点の数を指定
        line.SetVertexCount(2);

        // 開始位置と終了位置を指定
        line.SetPosition(0, Vector3.zero);
        line.SetPosition(1, new Vector3(1f, 1f, 0f));
    }

    // Update is called once per frame
    void Update()
    {

    }
}

このソースコードでは最新バージョンのUnityでは警告がでます。
頂点の数を指定のコメントアウトされているコードが問題のコードです。
では、警告が来ないソースコードに変更しましょう。

sample.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class addViewLine : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 線オブジェクト設定
        LineRenderer line = gameObject.GetComponent<LineRenderer>();

        // 線の幅を指定
        line.startWidth = 0.1f;
        line.endWidth = 0.1f;

        // 頂点の数を指定
        line.positionCount = 2;

        // 開始位置と終了位置を指定
        line.SetPosition(0, Vector3.zero);
        line.SetPosition(1, new Vector3(1f, 1f, 0f));
    }

    // Update is called once per frame
    void Update()
    {

    }
}

このように書くことで警告は消えます。

最後に

今回、このような事態がおきてしまった理由は筆者が参考にした資料(ググった)内のソースコードの書き方のバージョンが以前のものであったことです。実際、開発をしていく上でこんなの日常茶飯事なので警告がでたことにそんなにひるまなくてもいいと思いますが、言語の仕様変更に対しては敏感である必要があると改めて感じることができました。いい勉強になりました。

ついでになんですが、筆者は大学生です。はい。バイトでエンジニアしてます。
インスタでは情報発信や記事の投稿通知、役立つ情報、日常を垂れ流したりしてますのでよかったらフォローしてください。多分フォロー返します。沢山の方と繋がれたらなとか思っています。
アカウント→taaa_kundayo
URL:https://www.instagram.com/p/B-j3-RJjPWJ/?igshid=poq7k5z6eo3n

では、記事は以上になります。
ありがとうございました!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0