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

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

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

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

Unity3D

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Unity

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

Q&A

1回答

3927閲覧

Unity5 動く床について

van-0215

総合スコア89

C#

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

Unity3D

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Unity

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

0グッド

0クリップ

投稿2016/03/24 07:15

前回の質問に続きUnity5について質問させていただきます。

現在動く床を作成しています。 その際、プレイヤーが床に乗ったらともに動く。という使用にしているのですが、横方向での動作は確認できたのですが、縦方向では画像のようにキャラクターがたまに浮いてしまいます。
浮いたキャラクター

下記に動く床のスクリプト。
そしてキャラクターを連動して動かすスクリプト。(こちらは、床の上にColliderを作り床の上にプレイヤーがきたら、床の子オブジェクトにキャラクターを入れる。という仕様です)
この2つを貼っておきます。どうすれば床の上で浮かないでいられるか教えてください。 お願いします。

C#

1<動く床> 2using UnityEngine; 3using System.Collections; 4 5public class MoveFloor_tate : MonoBehaviour 6{ 7 8 private Vector3 initialPosition; 9 10 void Start() 11 { 12 13 initialPosition = transform.position; 14 15 } 16 17 void Update() 18 { 19 20 transform.position = new Vector3(initialPosition.x, initialPosition.y + Mathf.Sin(Time.time) * 2.0f , initialPosition.z); 21 22 } 23 24}

C#

1<プレイヤーを連動させる> 2using UnityEngine; 3using System.Collections; 4 5public class MoveFloor_player_tate : MonoBehaviour 6{ 7 8 void OnTriggerEnter(Collider other) 9 { 10 Debug.Log("TriggerEnter"); 11 if (other.gameObject.tag == "Player")//プレイヤーが乗った 12 { 13 if (other.gameObject.transform.parent == null)//親子設定がない 14 { 15 other.gameObject.transform.parent = transform;//親子を設定 16 Debug.Log("parenting"); 17 } 18 } 19 } 20 21 void OnTriggerStay(Collider other) 22 { 23 Debug.Log("TriggerStay"); 24 } 25 26 void OnTriggerExit(Collider other) 27 { 28 Debug.Log("TriggerExit"); 29 if (other.gameObject.tag == "Player") 30 { 31 if (other.gameObject.transform.parent != null) 32 { 33 other.gameObject.transform.parent = null; 34 Debug.Log("unparenting"); 35 } 36 } 37 } 38}

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

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

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

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

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

ozwk

2016/03/24 08:11

浮くのはどのタイミングですか?浮くときはずっと浮いてますか?乗った瞬間から浮いてますか?それともある程度してからだんだん浮きますか?浮いたり付いたりを繰り返しますか?
van-0215

2016/03/24 08:23

今色々試してみましたが、↑を使っての移動時にはならないことがわかりました。 十字キーの→↓←を押すと浮いてしまいます。 一度浮いたら基本的に浮きっぱなしです。
guest

回答1

0

Unityの軸の向きのデフォルトは
x,zが水平方向で、
yが鉛直方向だったと思うのですが、軸を間違えてませんか?

投稿2016/03/24 07:26

ozwk

総合スコア13512

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

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

van-0215

2016/03/24 07:33

すみません、初心者なもので、ご指摘いただいた場所がわからないので、具体的におねがいします。
ozwk

2016/03/24 07:37

あなたの思う「縦」方向は何軸ですか?
van-0215

2016/03/24 07:39

yだと思っています。
ozwk

2016/03/24 07:44

では、あなたが動かしたい「縦」方向は 重力方向ですか?水平方向ですか?
van-0215

2016/03/24 07:45

重力方向です。
ozwk

2016/03/24 07:57 編集

すみません、動く床と聞いてベルトコンベアみたいなの想像してましたが よく読んだら床自体が動くんですね。
van-0215

2016/03/24 07:58

文章力がなかったかもしれません、それでも回答ありがとうございました。 また何かわかりましたら是非教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問