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

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

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

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

Q&A

解決済

3回答

1214閲覧

Unityのチュートリアルのコードについて

_-.123ray

総合スコア12

C#

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

0グッド

0クリップ

投稿2018/12/15 07:50

前提・実現したいこと

Unityの公式チュートリアル、はじめてのUNITYを最後まで終わらせたい。

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

プレイヤーを動かす章にて、軽くコードを書くところがあるのですが(軽くコードといっても説明に書いてある通りにコピーすればいけるはず)エラーメッセージも特に出ていないのに作動しません。

該当のソースコード

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour
{
// speedを制御する
public float speed = 10;

void FixedUpdate ()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");

Rigidbody rigidbody = GetComponent<Rigidbody>(); // xとzにspeedを掛ける rigidbody.AddForce(x * speed, 0, z * speed);

}
}

試したこと

ド初心者なので、まず空欄や大文字小文字のエラーがないか確認しました、最初のほうはエラーメッセージが出ていたのですが公式ウェブサイトに載っていた通りにコピペしたらエラーメッセージは出なくなりました。しかしゲームを開始してもボールが落ちるだけで転がりません....(ちなみにエラーメッセージがあった時のほうがたまに転がりました)
ここまで来たらもうパソコンのスペックの問題ですか…
よろしくお願いします。

UNITYバージョンは2018.2.19 personal です。

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

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

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

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

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

negitama

2018/12/17 23:49

・この件、回答がついていますが未解決でしょうか。状況が分からないので、回答のとおり対応してみて解決したならベストアンサーに選んでください。未解決なら、回答者にコメントを返すなどしてください。 ・Unityの件なら、C#タグのほかにUnityタグも付けたほうがUnity利用者の目に止まりますよ。 ・質問に、教材へのリンクも追記すると親切だと思います。
_-.123ray

2018/12/18 03:55

回答がついたというメールをなぜか今日一斉に届いたのできょうまで気が付きませんでした。反応が遅れたこと、申し訳ありません。Unityタグ、及びリンクも件も親切にありがとうございます。以後気を付けます。
guest

回答3

0

インスペクター側でspeedの値が0になっていませんか?
0でない値(10とか100とか)にすれば動くのではないでしょうか。

投稿2018/12/17 23:52

negitama

総合スコア943

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

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

_-.123ray

2018/12/18 03:53

インスペクター側でしっかり10になっているんですよこれが.... 回答ありがとうございます。
guest

0

ベストアンサー

FixedUpdate内にDebug.Log("aaa");を入れてスクリプトが実行されてるか確認してみてください
ログが出てなかったらボールにスクリプトがアタッチされてないことになります

投稿2018/12/18 03:44

bochan2

総合スコア2050

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

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

_-.123ray

2018/12/18 03:52

試したところ、エラーメッセージもでず、しっかりと転がってくれました!なぜこれを入れないといけないのかまだよくわかっていないのですが、助かりました。ありがとうございました!
fiveHundred

2018/12/18 04:19

この内容は「Debug.Log("aaa");を入れると、『aaa』というログが出力されるから、それで本当に動作しているか確認してくれ」という意味であり、「このように修正すれば直る」というものではありません。 「aaa」と表示させるだけでは、普通ならそれで直るはずがないので、他のことが原因でしょう。
_-.123ray

2018/12/18 04:41

たしかにaaaというログは出ましたが、それでもしっかり転がってくれました。なのでaaaの部分を削除し再度動かしたところまたしっかり転がってくれました。原因は何だったのでしょう、、、?
bochan2

2018/12/18 08:24

何も変更していないのに動作が変わったとすると、ビルドが走っていなかった可能性があると思います
bochan2

2018/12/18 10:13

僕もスクリプトが更新されないことがたまにあるのでわざとエラーを起こすコードをかいて確かめてます。
_-.123ray

2018/12/21 04:48

ただのバグとは思えないですしね…実のところ私にも何が起きたのか。今は何事もなかったように動作してくれているのでとりあえずそれでいいのかなぁとぼんやり…
bochan2

2018/12/21 07:16

僕の環境でも3回位起きてるんですが稀に起こるだけなので再現しようが無く、気にしないことにしました。
guest

0

FixedUpdate()内でInputクラスの関数を使ってはいけないので、おそらくそれが原因でしょう。

投稿2018/12/15 08:33

fiveHundred

総合スコア9803

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

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

bochan2

2018/12/18 00:14

実験したところFixedUpdate内でもInput関数はある程度動作するっぽいです。 ただ、詳しく調べてないので同期ズレについては不明です。
fiveHundred

2018/12/18 01:02

違ってましたか。すいません。 ただ、FixedUpdate()内でInputクラスの関数を使うと予期しないバグの原因になるので、修正はしておいてください。
_-.123ray

2018/12/18 03:48

お二方とも、回答ありがとうございました。 Unity公式ウェブのチュートリアルに書いてあったコードのまま入力したので、それがバグなのかそれとも何なのかは初心者の私には判別もつきません… ただバグが起きる可能性があることをおぼえておきます。誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問