2016-10-19 2 views
1

こんにちはすべて私はUnity 5.4.1f1を使ってシンプルなゲームを作成しています。私のコードでは最初のプラットフォームの終わりに通りの部分であるプラットフォームを追加します
iは開始で添加:Unity 5.4オブジェクトの長さを見つける

lastPos = platForm.transform.position; 
size = platForm.transform.localScale.z; 

と更新でこのコードと呼ばれる追加しました:

Vector3 currentPos = lastPos; 
をハードM

14がので、私はこのコードを試みている通りの長さを符号化します

currentPos.z + =サイズ; lastPos = currentPos; インスタンス化(platForm、lastPos、Quaternion.identity);

しかし、それはそれが14であっても常にサイズ1を得ることはできませんでした それで結束力があるか、それともハードコード化すべきですか?

enter image description here

+0

例えばrenderer.bounds

を使用することができますか – UnholySheep

+0

@UnholySheepこれはちょうどテンプレート私は異なるサイズのプラットフォームの別の種類のコードを使用したい – mohammad

答えて

2

あなたは、なぜあなたはスケール値を変更しない場合は変更する `size`を期待している?

var size = GetComponent<Renderer>().bounds.size; 
2

スケールは、オブジェクトのサイズに乗数を表します。 だから、10メートルを有するが無い規模を持つオブジェクトを使用すると、そのモデルの大きさ(20メートル)を複製​​した場合、スケールはあなたは、その境界しかし、メッシュの長さを得ることができます。2.

なり、係数1を返します

mesh.bounds.size、このベクトル3は各軸の長さを持ちます。

https://docs.unity3d.com/ScriptReference/Mesh-bounds.html

+0

私はあなたのオブジェクトがコライダーなしであったことを見ていない、あなたは同じアイデアを使用してメッシュを使用することができます、 。 –

関連する問題