質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

780閲覧

unity3D;円周上のオブジェクトの初期位置を定めるスクリプトが思い通りに実行されない

kaminumeyo

総合スコア11

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2019/06/20 06:29

###前提、実現したいこと

前提・実現したいこと

曲線のレール上(位置は固定)に球体を転がそうと考えています。初速度は0で、球体の初期位置をインスペクターからパラメタθの値を弄って設定できるようにしたいです。(0°<=θ<=60°)
イメージ説明

発生している問題・エラーメッセージ

C#スクリプトを作成、保存してもエラーメッセージは表示されませんでしたが、球体オブジェクトにアタッチしてシーンを再生しても球体は指定した位置へ移動しませんでした。

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class initializeA : MonoBehaviour 6{ 7 8 public float theta; 9 private float costheta; 10 private float sintheta; 11 12 void Start() 13 { 14 costheta = Mathf.Cos(theta * (Mathf.PI / 180)); 15 sintheta = Mathf.Sin(theta * (Mathf.PI / 180)); 16 17 Transform mytrans = this.transform; 18 Vector3 pos = mytrans.position; 19 pos.x = 0.0f; 20 pos.y = 1.0f - 0.9f * costheta; 21 pos.z = -1 * 0.9f * sintheta; 22 } 23}

試したこと

thetaを一先ずおいて、pos.x, pos.y, pos.z に定数値(2.0f)を代入した場合も、同様に初期位置は変化しませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

原因:

C#

1 // ここでは、posはmytrans.positionをコピーしたVector3を代入している 2 // (Vector3は構造体であり、その場合は参照型ではないため) 3 Vector3 pos = mytrans.position; 4 // posを変更してもmytrans.positionは変更されないため、以降の内容は意味なし 5 pos.x = 0.0f; 6 pos.y = 1.0f - 0.9f * costheta; 7 pos.z = -1 * 0.9f * sintheta;

修正案1:

C#

1 // mytrans.positionを直接変更する 2 mytrans.position = new Vector3(0.0f, 1.0f - 0.9f * costheta, -1 * 0.9f * sintheta);

修正案2:

C#

1 Vector3 pos = mytrans.position; 2 pos.x = 0.0f; 3 pos.y = 1.0f - 0.9f * costheta; 4 pos.z = -1 * 0.9f * sintheta; 5 6 // posの内容をmytrans.positionに反映 7 mytrans.position = pos;

投稿2019/06/20 07:10

fiveHundred

総合スコア9805

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaminumeyo

2019/06/20 09:48

原因から解決策までご説明ありがとうございます!無事に解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問