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

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

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

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

Q&A

解決済

1回答

1999閲覧

回転する床の上に乗るとキャラの大きさが変わるのを直したい

Solitude

総合スコア18

C#

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

0グッド

0クリップ

投稿2018/12/05 18:28

前提・実現したいこと

今、unity2Dでゲーム制作を行っています。その中に回転するオブジェクト(観覧車のようなギミック)があるのですが、その上にキャラクターであるユニティーちゃんが乗るとスケールが横に大きくなって地面から少し浮いてしまいます。(ギミックはtransformを使用して動かしています)サイトを参考に足場オブジェクトの子要素にする方法を試し、キャラクターが床の上に滑らず乗る事はできたのですが、キャラの大きさが変わってしまう所が困っています。
その他にも、キャラクターにカメラが追尾する処理を行っているのですが、ギミックの上にキャラクターが乗ると走る速さが早くなり、追尾処理が追いついていないような感じになっています。アドバイス、解決策を教えていただけると嬉しいです。
参考にしたサイト http://hiyotama.hatenablog.com/entry/2015/06/12/153523
https://tech.pjin.jp/blog/2016/12/06/unity_skill_6/#i

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

発生している問題 観覧車ギミックの上に乗るとキャラの大きさと走るスピードが変わる。 追尾するカメラが追い付かなく、ワープして追尾しているように見える。

該当のソースコード

C#

1観覧車ギミックの足場 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class MerryGorand_ugokudai : MonoBehaviour { 7 8 // Use this for initialization 9 void Start () { 10 11 } 12 13 // Update is called once per frame 14 void Update () { 15 transform.Rotate(0, 0, -0.5f); 16 } 17} 18

C#

1観覧車ギミックの中央の柱 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class merryGorand_hasira : MonoBehaviour { 7 8 // Use this for initialization 9 void Start () { 10 11 } 12 13 // Update is called once per frame 14 void Update () { 15 transform.Rotate(0, 0, 0.5f); // Z軸で1度回転 16 } 17} 18

C#

1足場オブジェクトの子要素にするスクリプト 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class Synchronization : MonoBehaviour { 7 8 void OnCollisionEnter2D(Collision2D col) 9 { 10 if (col.gameObject.tag == "MoveFloor") 11 { 12 transform.SetParent(col.transform); 13 } 14 } 15 16 void OnCollisionExit2D(Collision2D col) 17 { 18 if (col.gameObject.tag == "MoveFloor") 19 { 20 transform.SetParent(null); 21 } 22 } 23}

C#

1カメラを追尾させるスクリプト(必要なところだけを抜粋) 2public GameObject mainCamera; 3 4if (transform.position.x > mainCamera.transform.position.x - 4) { 5 Vector3 cameraPos = mainCamera.transform.position; 6 cameraPos.x = transform.position.x + 4; 7 mainCamera.transform.position = cameraPos; 8 } 9 Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); 10 Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1)); 11 Vector2 pos = transform.position; 12 pos.x = Mathf.Clamp(pos.x, min.x + 0.5f, max.x); 13 transform.position = pos;

試したこと

キャラクターの大きさが変わる原因について調べた。

補足情報(FW/ツールのバージョンなど)

unity
ここにより詳細な情報を記載してください。

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

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

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

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

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

izmktr

2018/12/06 01:08

足場そのもののlocalScaleの影響を受けているように見えます 足場までのScaleは全部1,1,1になっていますか
Solitude

2018/12/10 06:36

返信遅れて申し訳ありません。足場のスケールを全て1,1,1にすると、キャラの大きさが変わる問題が解決できました。ありがとうございました!
guest

回答1

0

自己解決

親になるオブジェクトのスケールを1,1,1に変えるとキャラの大きさが変わる問題が解決しました。

投稿2018/12/10 06:39

Solitude

総合スコア18

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問