回答編集履歴

4

追記

2022/01/02 11:00

投稿

退会済みユーザー
test CHANGED
@@ -95,3 +95,37 @@
95
95
  ただ、生成にかかる負担も僅かながら増えるので注意が必要かと思います。
96
96
 
97
97
  ikadzuchi様ありがとうございました。
98
+
99
+
100
+
101
+ 【再々々追記】
102
+
103
+ ikadzuchi様のご指摘を勘違いしているとBongo様からのご指摘がありました。
104
+
105
+ LineRendererのCornerVertices、つまり「角の頂点」の数を増やすと上記と同様に線の太さを一定にすることができる模様です。
106
+
107
+ ![角の頂点修正版](79e657090e7169ada9e64ef996265ca4.png)
108
+
109
+ 各設定項目、左から。記載が無いものはすべて同じ
110
+
111
+
112
+
113
+ |項目|1|2|3|4|5|6|7|
114
+
115
+ |:--:|:--|:--|:--|:--|:--|:--|:--|
116
+
117
+ |Positionsで1箇所に重ねる数|1個|2個|3個|4個|1個|1個|---|
118
+
119
+ |CornerVerticesの値|1|1|1|1|**2**|**3**|**2**|
120
+
121
+
122
+
123
+ ※左3つは【再々追記】の画像のものと同じです。
124
+
125
+ 画像のように、CornerVerticesの値を修正すればPositionsでわざわざ頂点を重ねなくても鋭角の辺が等幅で描画されます。
126
+
127
+ ただ、Positionsでの方法と比べ、頂点が丸くなります。
128
+
129
+ 90°などCornerVerticesの修正なしでも同じ幅で表示可能な角度でも、画像の一番右の線のように角が丸くなりますが、気にならないようでしたらこちらの方法を使った方が楽だと思います。
130
+
131
+ Bongo様ありがとうございました。

3

検証結果追記

2022/01/02 11:00

投稿

退会済みユーザー
test CHANGED
@@ -53,3 +53,45 @@
53
53
  ですので先程の図は少し誤っていますが、仕組みとしては間違っていないと思いますのでそのまま掲載させていただきます。
54
54
 
55
55
  大変失礼しました。
56
+
57
+
58
+
59
+ 【再々追記】
60
+
61
+ ikadzuchi様の指摘にあるように「角の頂点」を増やして検証してみました。
62
+
63
+ <結果>
64
+
65
+ 左から:「角の頂点」1個(通常)、2個、3個、4個
66
+
67
+ ![角の頂点変更版](81facf9092b5e115f9a1e0429c6353dc.png)
68
+
69
+ それぞれのLineRendererの設定はPositions以外初期設定のままです。
70
+
71
+ LoopはOff、Widthは常に0.10、AlignmentはViewの状態で、Positionのみを以下のように変更しました。
72
+
73
+ |Index|角の頂点:1個|2個|3個|4個|
74
+
75
+ |:---:|:---|:---|:---|:---|
76
+
77
+ |0|0,0,0|0,0,0|0,0,0|0,0,0|
78
+
79
+ |1|0.2,3,0|0.2,3,0|0.2,3,0|0.2,3,0|
80
+
81
+ |2|0.4,0,0|0.2,3,0|0.2,3,0|0.2,3,0|
82
+
83
+ |3|---|0.4,0,0|0.2,3,0|0.2,3,0|
84
+
85
+ |4|---|---|0.4,0,0|0.2,3,0|
86
+
87
+ |5|---|---|---|0.4,0,0|
88
+
89
+
90
+
91
+ 結果、角の頂点数を2にしたときは何やらおかしなことになりますが、頂点数を3、4と増やした場合はある程度線が上手に引けるみたいです。
92
+
93
+ ちなみにこの折れ線の角度は約7°でした。
94
+
95
+ ただ、生成にかかる負担も僅かながら増えるので注意が必要かと思います。
96
+
97
+ ikadzuchi様ありがとうございました。

2

追記

2022/01/02 01:20

投稿

退会済みユーザー
test CHANGED
@@ -39,3 +39,17 @@
39
39
  この線分α、β、γ、εの端点をなぞるように実際のLineが描画されるので、どうしてもLine自体の幅はずれてしまいます。
40
40
 
41
41
  設定している`Width`の値が必ずしもLineの幅となるわけではないことを知っておくと良いと思います。
42
+
43
+
44
+
45
+ 【再追記】
46
+
47
+ 少し調べたところ、極端な角度でない限りは上手にUnityが調整してくれている模様です。
48
+
49
+ 直角など、緩い角度であれば正常に描画されます。
50
+
51
+ この程度の角度であれば、先に追記した内容でのβやγの長さを調整してくれますが、あまりにも角度が急すぎるとβやγの長さがとても長くなってしまうため調整が(十分に)されず、結果、線の幅が異なってしまうということです。
52
+
53
+ ですので先程の図は少し誤っていますが、仕組みとしては間違っていないと思いますのでそのまま掲載させていただきます。
54
+
55
+ 大変失礼しました。

1

追記

2022/01/01 04:03

投稿

退会済みユーザー
test CHANGED
@@ -17,3 +17,25 @@
17
17
 
18
18
 
19
19
  よってカメラに対して同じ幅で描画したい(=正面にしたい)ので、`View`にしてください。
20
+
21
+
22
+
23
+ 【追記 LineRendererの仕様について】
24
+
25
+ 私が少々勘違いしていたので仕組みを説明させていただきます。
26
+
27
+ LineRendererは折れ線の場合完全に同じ太さの線を引くことはできません。
28
+
29
+ ![LineRenderer仕組み](2be16999127ea55a5124539b438f1ae2.png)
30
+
31
+ この図で、赤い点A、B、C、Dが`Positions`の点を、黒い線分α、β、γ、εが線の幅、つまり`Width`を意味します。
32
+
33
+ また、赤い線は`Positions`の点を繋いだもの、薄い水色の部分が実際に線が描画される場所になります。
34
+
35
+ `Width`を一定にした場合、α、β、γ、εの長さは全て等しくなります。
36
+
37
+ 始点の点Aと通る線分αと、終点の点Dを通る線分εは、それぞれ線分ABとDCに垂直に配置されますが、途中の点である点B、Cを通る線分β、γについては、それぞれ∠ABC、∠BCDを二等分する方向に配置され、前後の線分と常に垂直にはなりません。
38
+
39
+ この線分α、β、γ、εの端点をなぞるように実際のLineが描画されるので、どうしてもLine自体の幅はずれてしまいます。
40
+
41
+ 設定している`Width`の値が必ずしもLineの幅となるわけではないことを知っておくと良いと思います。