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

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

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

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

Unity

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

Q&A

解決済

1回答

209閲覧

Unity)iPhoneX以降の不思議な挙動

navesanta

総合スコア198

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2018/10/06 09:52

両側をタッチすると少しずつオブジェクトが動くアプリを作成しています。

dogオブジェクトを作成してImageを入れ、その両側にLButtonとRButtonのUIButtonを作成して
dogの子にしました。(LButtonとRButtonはマテリアルで透明にしています)

下記Scriptを作成して空のオブジェクトを作成してアタッチしました。
そしてLButtonとRButtonのクリック属性から参照しました。

dog
----LButton
---RButton

LButtonとRButtonを連打すると少しずつ左右に動いていく仕様です。
Androidの実機テストは問題なく少しずつ動きます。
iOSファイルにコンパイルしてXcodeでテストしました。

シュミレータのiPhone5sやiPhone8やiPhoneSEなどは問題なく少しずつ動くのですが
iPhoneX以降のシュミレータのテストをすると1回押しただけでぶっ飛んでしまい
dogオブジェクトが画面から消えてしまいます。

最初端末の機能が原因かと思ったのですがTime.deltaTimeを使っているので
端末の機能は影響ないと思っています。

どんな原因が考えられるでしょうか?分かる方ヒントでも結構ですので教えて下さい。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { public GameObject dog; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public void LButtonDown(){ dog.transform.Translate(-20 * Time.deltaTime, 0, 0); } public void RButtonDown(){ dog.transform.Translate(20 * Time.deltaTime, 0, 0); } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

解像度の違いが怪しいのかなーと思ったのですが、iphone8でも大丈夫となると微妙ですね・・・。
一応解像度の違いに着目して、他の端末シミュレートもしてみてください。

解像度一覧
https://qiita.com/tomohisaota/items/f8857d01f328e34fb551

あとは動きをすごく小さくしてみて(1*Time.deltaTimeとか、それ以下)
それでどうなるかも試してみてください。

投稿2018/10/06 10:43

ganta7188

総合スコア436

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

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

navesanta

2018/10/06 23:36

>一応解像度の違いに着目して、他の端末シミュレートもしてみてください。 5s OK 6 OK 7 OK 8 OK 8plus × X以降 × 分かったことなのですが8はOKですが移動する長さが 長くなっています。 また5s < 6 < 7 < 8と言った具合で バージョンが上がるにつれて移動する長さが長くなっており 8plus以降は長くなりすぎてみえなくなっているようです。
navesanta

2018/10/06 23:40

>あとは動きをすごく小さくしてみて 試しに1にしたところ少しだけ動くようです。 ただこれもバージョンが上位になるほどたくさん動くようです。 結論としては解像度によって動く長さが違うようです。 普通*Time.deltaTimeを使うと1秒間に動く距離は統一されると 思っていたのですがそもそもその考え方が間違っているのでしょうか? 正しいスクリプト分かる方見えましたら教えて下さい。
ganta7188

2018/10/07 00:38

であれば解像度ですね。 こちらが参考になるかもしれません。 https://teratail.com/questions/134882 動かしてるのがUGUIならCanvasScalerの設定でなんとかなるかも?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問