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

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

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

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

Q&A

解決済

2回答

1250閲覧

unityのチュートリアルに書いてあるscryptを書いたのですが機能しません。玉転がし playercontlloer

shinjishimizu

総合スコア12

Unity

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

0グッド

0クリップ

投稿2019/05/01 06:16

前提・実現したいこと

unityでゲームを作ろうと思ってます
まずは作り方と調べて出てきたチュートリアルをしてるのですがplayercontlloer というscryptをコピーペーストしたのですが機能しません。

キーボードで操作できるそうなのですが全く反応しませんでした。

https://unity3d.com/jp/learn/tutorials/projects/hajiuni/moving-the-player?playlist=45986

c#

using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
void FixedUpdate()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Rigidbody rigidbody = GetComponent<Rigidbody>();
// rigidbodyのx軸(横)とz軸(奥)に力を加える
rigidbody.AddForce(x, 0, z);
}
}

インターネットでいくら調べてもどこが間違ってるかわからないです。
初心者ですがご教授お願いします。

バージョンはUnity 2019.1.0f2 (64-bit)です

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

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

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

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

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

guest

回答2

0

これが原因かどうかは分かりませんが、Inputクラスの関数をFixedUpdate()で使うとバグの原因になったりします。
そのため、以下のように、Input.GetAxis()をUpdate()内で使うようにする必要があります。
(また質問とは関係ないですが、GetComponent<Rigidbody>()は毎回呼び出すよりも、Start()で一度だけ呼び出すほうがよいので、そのようにしています)

C#

1using UnityEngine; 2using System.Collections; 3public class PlayerController : MonoBehaviour 4{ 5 Rigidbody rigidbody; 6 float x; 7 float z; 8 9 void Start() 10 { 11 rigidbody = GetComponent<Rigidbody>(); 12 } 13 14 void Update() 15 { 16 x = Input.GetAxis("Horizontal"); 17 z = Input.GetAxis("Vertical"); 18 } 19 20 void FixedUpdate() 21 { 22 // rigidbodyのx軸(横)とz軸(奥)に力を加える 23 rigidbody.AddForce(x, 0, z); 24 } 25}

これで解決しない場合は、Consoleにエラーが出ていないか確認し、出ていればその指示に従ってください。

投稿2019/05/01 06:28

fiveHundred

総合スコア9803

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

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

shinjishimizu

2019/05/01 07:13

scryptをさしかえましたが依然と動かないです。。。 エラー一覧で変な個所がないか見てもエラーはないとしか出ません。 インスペクタービューのところに文章を見つけました。 もしかしたらこれが問題ですか? No MonoBehaviour scrypt in the file, or thir name do not match the file name
shinjishimizu

2019/05/01 07:15

unity でゲーム再生ボタンを押した後も物体が落下するだけでキー入力を受け付けないです。。。
fiveHundred

2019/05/01 08:04

PlayerControllerを記載しているスクリプトの名前はPlayerController.csになっていますか?
shinjishimizu

2019/05/01 08:40

さっき調べたらplayerとplayercontrollerのつながりが切れていました、新しく作り直したらうまくいきました。
guest

0

自己解決

scrypt自体に問題があったわけではなく、何かの拍子にscryptとobjectのつながりが切れたことが原因でした。
なので新しくscryptを作り直したらうまくいきました。
アドバイスを下さりありがとうございます。

投稿2019/05/01 08:43

shinjishimizu

総合スコア12

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問