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

皆さん、ついに、エアラインでも、サブスクリプションが始まったのはご存じですか? まだ実験段階ですが、ANAが、定額全国住み放題サービスを提供する「ADDress」と組んで、国内線を4回まで定額利用可能 ...

2

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

3

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

4

ついに、noteの月間アクティブユーザー数が4400万人(2020年3月時点)に到達しました。 そもそも、「note」とは、クリエイターが、文章やマンガ、写真、音声を投稿することができ、ユーザーはその ...

5

ボードゲームカフェが1日2回転で儲かるという記事をみつけたので興味を持ち、調べてみました。 まずは、需要がどれくらいあるのか、市場のようすからみていきましょう。 世界最大のボードゲーム市場はドイツで、 ...

-code, ソーシャル
-,

Copyright© BUSINESS HUNTER , 2023 All Rights Reserved Powered by AFFINGER5.