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

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

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

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

2536閲覧

sliderの値を物体の速度として利用したいです。

airu

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/07/26 02:44

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

unity でsliderを動かすことによって物体の速度を変えられるプログラムを書いています。
エラーメッセージは出ていないのですが、値が送られているはずの物体が動きません。
最近unity を使い始めたばかりなので、詳しく教えていただけると嬉しいです。

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

エラーメッセージ

###該当のソースコード

C#

1using System.Collections; 2//using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class guiscript : MonoBehaviour { 7 public Canvas canvas; 8 public Text text; 9 public Slider slider; 10 public static float value_slider; //static変数に値を格納 11 // Use this for initialization 12 void Start () { 13 canvas.enabled = false; 14 text.text = "ready..."; 15 slider = GameObject.Find ("Slider").GetComponent<Slider> (); //sliderを探す 16 } 17 public void OnSliderChanged(){ 18 text.text = "value = " + slider.value; 19 } 20 public void OnButtonClick(){ 21 text.text = "GO!!"; 22 } 23 // Update is called once per frame 24 void Update () { 25 if (Input.GetKey (KeyCode.Space)) { 26 canvas.enabled = true; 27 } 28 value_slider = slider.value; //sliderの値を取得して保存 29 } 30}
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Stage : MonoBehaviour { //public InputScript force; public Slider slider_s; public Rigidbody speed_r; [SerializeField] void Start() { GetComponent<guiscript> (); slider_s = GameObject.Find ("Slider").GetComponent<Slider> (); //slider_s.value = guiscript.value_slider; //Debug.Log (slider_s.value); speed_r = GetComponent<Rigidbody> (); } void FixedUpdate(){ slider_s.value = guiscript.value_slider; Debug.Log (slider_s.value); speed_r.velocity = new Vector3 (0.0f,0.0f,slider_s.value*Time.deltaTime); } }

###試したこと
上のプログラムのguiscriptでsliderの値を保存して、下のプログラムのStageで値を持ってきています。Debugでslider_s.valueの値は出るのですが、stageは動きません。
何か設定が必要なのでしょうか。

###補足情報(言語/FW/ツール等のバージョンなど)
Unity5.6.1f

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

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

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

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

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

guest

回答1

0

ベストアンサー

InspectorでRigidbodyを見ると、IsKinematic が trueになっていないでしょうか?
https://docs.unity3d.com/jp/540/ScriptReference/Rigidbody-isKinematic.html

これがtrueになっていると、Rigidbodyは物理演算の影響を受けなくなるので、
velocityを変化させても動きません。

投稿2017/07/26 03:15

kanitaoru

総合スコア204

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

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

airu

2017/07/26 03:39

stageはtrueになっていなかったのですが、FixedJointでつながっていた物体がtrueになってました。 動きました!本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問