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

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

ただいまの
回答率

89.08%

Unityでオブジェクトが下に向かって動いてしまう

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 2,137

Abel350

score 11

「Unity5 3D/2Dゲーム開発
作りながら覚えるスマートフォンゲーム制作」という本を買い
それに従ってUnityで簡単なゲームを作成しているのですが

公式サイトから配布されているオブジェクトをUnityに導入し
導入したオブジェクトに本通りのC#スクリプトを書き
適用したところ

なぜか導入したオブジェクトの子として設定した
床(これは自分が本通りに作成)が下に向かって動いてしまいます

本来なら下に向かって動かないはずなのですが
公式サイトに間違いと修正が載っていたのですが
そこには自分が元にしたページは載っていませんでした

エラーにはならず、症状が症状なので調べ方も分からず
ここに至った次第です

バージョン:Unity5.5.4(64bit)
OS:Windows10 Home(64bit)

using UnityEngine;

using System.Collections;

public class NejikoController : 
//NejikoControllerは導入したオブジェクト

MonoBehaviour {
    CharacterController controller;

Animator animator;

Vector3 moveDirection = Vector3.zero;


public float gravity;

public float speedZ;

public float speedJump;


    // Use this for initialization


void Start () {


controller = GetComponent<CharacterController> ();


animator = GetComponent<Animator> ();



}

    // Update is called once per frame


void Update () {



if(controller.isGrounded) {


if(Input.GetAxis("Vertical") > 0.0f) {


moveDirection.z = Input.GetAxis("Vertical") * speedZ;


    }



else {


moveDirection.z = 0;
}


transform.Rotate (0, Input.GetAxis ("Horizontal") * 3, 0);



if(Input.GetButton("Jump")) {


moveDirection.y = speedJump;


animator.SetTrigger ("jump");


}



}



moveDirection.y -= gravity * Time.deltaTime;



Vector3 globalDirection = transform.TransformDirection(moveDirection);


controller.Move(globalDirection * Time.deltaTime);



if(controller.isGrounded)  

moveDirection.y = 0;



animator.SetBool("run",moveDirection.z > 0.0f);


}



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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fiveHundred

    2018/03/29 19:47

    「なぜか導入したオブジェクトの子として設定した床(これは自分が本通りに作成)が~」とありますが、これは本当に本通りでしょうか?。「キャラクターと連動して床を動かす」とかの理由が無いのであれば、通常はキャラクターの子には設定しないはずなのですが。

    キャンセル

  • Abel350

    2018/03/29 20:13 編集

    回答ありがとうございます! 
    導入オブジェクトと床の親子設定を解除した結果、
    無事自分の意図通りの動作が確認できました!

    通常は床オブジェクトとキャラクターオブジェクトは理由が無ければ
    基本的に親子にしないのですね
    勉強になりました<m(__)m>

    キャンセル

回答 1

checkベストアンサー

0

その本のことは知りませんが、
その床オブジェクトのRigidbodyのuseGravityにチェックが付いていたらオブジェクトに重力が働き下に落ちます。チェックを外せばできるかもしれません。

Rigidbody

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 20:15

    画像付きの回答ありがとうございます!
    Use Gravityの事は忘れていました
    自分の力不足をまだ感じるのでもっとUnity勉強します!

    キャンセル

  • 2018/03/30 07:28

    床とのことですが、
    Use Gravityのチェックを外しても他のオブジェクトがあたってきたら動いてしまうと思います。
    その場合、上の画像のConstraintsを開いて、そのなかのFreeze Position と Freeze Rotationの全てのチェックボックスにチェックを入れてください。

    キャンセル

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

  • ただいまの回答率 89.08%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る