こんにちは。
今回はUnityで開発中に少しつまずいた事を紹介しようと思います。
とりあえず実装したかったのは、ただ線を描写したかったのです。しかし、Unityのバージョンアップの際にどうやら頂点数の指定方法に変更があったみたい。とりあえずどう変更されたのかを最初に書いていきます。
変更された構文
はい。見出し通り構文が変更されていたみたいです。下に比較して書いていきます。
| バージョン | 構文 | 例文 |
|---|---|---|
| ver5.4以前 | SetVertexCount([int]); | Line.SetVertexCount(2); |
| ver5.5 | numPositions = [int]; | Line.numPositions = 2; |
| ver5.6以降 | positionCount = [int]; | Line.positionCount = 2; |
上記の通りバージョン事に少しずつ違います。
何が厄介かというと、エラーではなく警告として怒られます。なので気づかない可能性があります。
例のソースコード
まずは警告されるコードを書いていきます。
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassDisplayLine:MonoBehaviour{// Start is called before the first frame updatevoidStart(){// 線オブジェクト設定LineRendererline=gameObject.GetComponent<LineRenderer>();// 線の幅を指定line.startWidth=0.1f;line.endWidth=0.1f;// 頂点の数を指定line.SetVertexCount(2);// 開始位置と終了位置を指定line.SetPosition(0,Vector3.zero);line.SetPosition(1,newVector3(1f,1f,0f));}// Update is called once per framevoidUpdate(){}}このソースコードでは最新バージョンのUnityでは警告がでます。
頂点の数を指定のコメントアウトされているコードが問題のコードです。
では、警告が来ないソースコードに変更しましょう。
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassaddViewLine:MonoBehaviour{// Start is called before the first frame updatevoidStart(){// 線オブジェクト設定LineRendererline=gameObject.GetComponent<LineRenderer>();// 線の幅を指定line.startWidth=0.1f;line.endWidth=0.1f;// 頂点の数を指定line.positionCount=2;// 開始位置と終了位置を指定line.SetPosition(0,Vector3.zero);line.SetPosition(1,newVector3(1f,1f,0f));}// Update is called once per framevoidUpdate(){}}このように書くことで警告は消えます。
最後に
今回、このような事態がおきてしまった理由は筆者が参考にした資料(ググった)内のソースコードの書き方のバージョンが以前のものであったことです。実際、開発をしていく上でこんなの日常茶飯事なので警告がでたことにそんなにひるまなくてもいいと思いますが、言語の仕様変更に対しては敏感である必要があると改めて感じることができました。いい勉強になりました。
ついでになんですが、筆者は大学生です。はい。バイトでエンジニアしてます。
インスタでは情報発信や記事の投稿通知、役立つ情報、日常を垂れ流したりしてますのでよかったらフォローしてください。多分フォロー返します。沢山の方と繋がれたらなとか思っています。
アカウント→taaa_kundayo
URL:https://www.instagram.com/p/B-j3-RJjPWJ/?igshid=poq7k5z6eo3n
では、記事は以上になります。
ありがとうございました!!