code ソーシャル

Unityアプリcodetips(39)

スポンサーリンク

//tips

//ボタンが急遽使用できなくなった際の注意点

今回急遽canvas上のボタンが使用できなくなったので原因を調べたらcanvasのレイヤー被りであることがわかったボタンが載っているcanvasレイヤーを最大にして、他の値を下げた。

以前生じたボタン関係のトラブルではrotationのz値ではなく、y値で設置したことで押せなくなったことやボタンにEventTriggerコンポーネントを入れていなかったこと、playerのスクリプト変更によりfunctionの部分が外れていたことなどがある。

//spriteのオブジェクト追尾

オブジェクト示すためのspriteはわざわざワールド座標で設定する必要はなく、設定したいオブジェクトの子要素として生成すれば、オブジェクトの追尾を行うspriteとなる。

//指示オブジェクトの管理

テキストの文言に対応して発生させる指示オブジェクトを時間ではなくクリックカウントで管理する。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TextManager : MonoBehaviour
{
[SerializeField] GameObject test;
[SerializeField] GameObject test1;
[SerializeField] GameObject test2;
[SerializeField] GameObject test3;
[SerializeField] GameObject test4;

int count = 0;

void Update()
{
if (Input.anyKeyDown)
{
count++;
}

if (count == 0)
{
//ゲームオブジェクト表示→非表示
test.SetActive(true);
}

if (count == 1)
{
//ゲームオブジェクト表示→非表示
test1.SetActive(true);
test.SetActive(false);
}
if (count == 2)
{
//ゲームオブジェクト表示→非表示
test2.SetActive(true);

}
if (count == 3)
{
//ゲームオブジェクト表示→非表示

test2.SetActive(false);

 

}
if(count==4)
{
//ゲームオブジェクト表示→非表示

test3.SetActive(false);
test4.SetActive(false);

}

}
}

ただ、こちらのスクリプトを搭載したからか、なぜかシーンの移行中に固まるようになってしまったので現在要因を確認中。

もしかしたらsetactiveを使用せずに透明化させてしまった方が負担は少ないのかもしれない。

//オブジェクトの移動の優先順位 animator>Vector3.Lerp

Vector3.Lerpが発動しない要因が解明された。

問題点としては、Vector3.Lerpのスクリプトと一緒にanimatorをアタッチしており、animatorの動きが優先されることにあった。

animatorを削除したら無事に移動を行えるようになった。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Liner : MonoBehaviour
{

public RectTransform startMarker;
public RectTransform endMarker;

// スピード
public float speed = 1.0F;

//二点間の距離を入れる
private float distance_two;

void Start()
{
//二点間の距離を代入(スピード調整に使う)
distance_two = Vector3.Distance(startMarker.position, endMarker.position);
}

void Update()
{

// 現在の位置
float present_Location = (Time.time * speed) / distance_two;

// オブジェクトの移動
transform.position = Vector3.Lerp(startMarker.position, endMarker.position, present_Location);
}
}

//Unityアプリ横画面固定の方法

Unity上部にあるFileのPlayer Settingで「Allowed Orientations for Auto Rotation」から設定。

メニューバーのFile → Build Settings→Player Settingsの中のResolution And Presentation の「Allowed Orientation for Auto Rotation」の設定を変更。

Portrait 縦画面、Portrait Upside Down 縦画面で下部を上、Landscape Right 右側面を上、Landscape Left 左側面を上なので、Landscape RightまたはLandscape Leftを選べば良い。

Iosは上記で問題なさそうだが、Androidでは上記で設定できない問題もあるとのこと。詳細は下記参照。

https://qiita.com/haifuri/items/d772bc3d3db98ec090b2

//統合内容最新版

人気の記事

1

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

4

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-code, ソーシャル
-,

Copyright© BUSINESS HACKER , 2020 All Rights Reserved Powered by AFFINGER5.