スクリプトを更新したのに、InspectorViewの変数が増えない
プログラムが間違っていてビルドエラーが出ている可能性が高いです。
エディタ上でbuildしてみましょう。
{}の対応が間違っていないか、全角スペースが入っているかなど、確認してみましょう
//3行目に追加
using UnityEngine.UI;
//class名が違っていたら上書き
public class GameManager : MonoBehaviour {
//クラス入ってすぐのところに
public Text txtGps;
//Start内を下記に
void Start () {
if (Input.location.isEnabledByUser){
Input.location.Start();
}
else {
txtGps.text = "No GPS";
}
}
//Update内を下記に
void Update () {
if (Input.location.isEnabledByUser) {
switch (Input.location.status) {
case LocationServiceStatus.Failed: txtGps.text = "GPS Failed"; break;
case LocationServiceStatus.Initializing: txtGps.text = "GPS Init"; break;
case LocationServiceStatus.Running: txtGps.text = string.Format("lat: {0:f1}, lng: {1:f1}", Input.location.lastData.latitude, Input.location.lastData.longitude); break;
}
}
}
//3行目に追加
using UnityEngine.UI;
//class名が違っていたら上書き
public class GameManager : MonoBehaviour {
//クラス入ってすぐのところに
public Text label;
public RawImage img;
private LocationService GPS;
private float lat, lng;
private WWW dlImage;
//Start内を下記に
void Start () {
GPS = Input.location;
if (GPS.isEnabledByUser)
{
// GPSの測位を開始する
GPS.Start();
// 5秒おきにGPS情報を取得する
InvokeRepeating("GetLocation", 0, 5);
}
else
{
// GPSにアクセスできない
label.text = "GPS不許可";
}
// まずはダミー位置情報で読み込む
lat = 35.686275f;
lng = 139.752835f;
StartCoroutine(GetMapImage());
}
//Update内は空にする
void Update () {
}
//メソッド3個追加
//アプリ終了時に呼ばれるメソッド
void onDisable()
{
// アプリ終了時にGPSを停止する(電池節約)
GPS.Stop();
}
//位置情報更新用のメソッド
void GetLocation()
{
switch (GPS.status)
{
case LocationServiceStatus.Failed:
// GPS取得失敗
label.text = "取得失敗";
CancelInvoke("GetLocation");
break;
case LocationServiceStatus.Initializing:
// まだ準備中
label.text = "取得中…";
break;
case LocationServiceStatus.Running:
// GPS利用可能
var data = GPS.lastData;
if (lat != data.latitude || lng != data.longitude)
{
// 前回と位置が違うなら地図更新
lat = data.latitude;
lng = data.longitude;
StartCoroutine(GetMapImage());
}
break;
}
}
//地図を取得するメソッド
IEnumerator GetMapImage()
{
label.text = string.Format("緯度:{0:f6}\n経度:{1:f6}", lat, lng);
// URLを生成
var url = "http://maps.googleapis.com/maps/api/staticmap";
url += string.Format("?center={0},{1}", lat, lng);
url += "&zoom=14&size=400x300&scale=2&maptype=roadmap&sensor=true";
url += string.Format("&markers={0},{1}", lat, lng);
Debug.Log(url);
// ダウンロード
dlImage = new WWW(url);
yield return dlImage;
// 画像として読み込む
img.texture = dlImage.texture;
// 注意事項:Google Maps Static APIの頻度制限
// 同一IPアドレスで、1分間に50回 or 1時間に1000回まで
}
//3行目に追加
using UnityEngine.UI;
//class名が違っていたら上書き
public class GameManager : MonoBehaviour {
//クラス入ってすぐのところに
public Text txtCompass;
public Text txtGyro;
//Start内を下記に
void Start () {
Input.compass.enabled = true;
Input.gyro.enabled = true;
if (!Input.compass.enabled)
txtCompass.text = "No Compass";
if (!SystemInfo.supportsGyroscope)
txtGyro.text = "No Gyro";
}
//Update内を下記に
void Update () {
// 方位センサー
if (Input.compass.enabled) {
txtCompass.text = string.Format("{0:f2}deg", Input.compass.magneticHeading);
}
// ジャイロセンサー
if (SystemInfo.supportsGyroscope && Input.gyro.enabled)
{
Vector3 gyro = Input.gyro.rotationRate;
txtGyro.text = string.Format("X: {0:f1}, Y: {1:f1}, Z:{2:f1}", gyro.x, gyro.y, gyro.z);
}
}
//変数宣言のところに追加
AudioSource audioSource
//Start内に追加
audioSource = gameObject.GetComponent<AudioSource>();
//Update内に追加
if (Input.GetMouseButtonDown (0)) {
audioSource.Play();
}
//変数宣言のところに1行追加
public AudioClip audioClip;
//Update内にif文を追加
if (Input.GetKeyDown(KeyCode.A)) {
audioSource.clip = audioClip;
}
if (Input.GetKeyDown(KeyCode.S)){
audioSource.PlayOneShot( audioClip );
}
if(Input.GetKeyDown(KeyCode.D)){
audioSource.Stop( );
}
if(Input.GetKeyDown(KeyCode.F)){
audioSource.Pause( );
}
if(Input.GetKeyDown(KeyCode.G)){
audioSource.UnPause( );
}
プログラムが間違っていてビルドエラーが出ている可能性が高いです。
エディタ上でbuildしてみましょう。
{}の対応が間違っていないか、全角スペースが入っているかなど、確認してみましょう
classの大文字と小文字が違っている可能性があります。
エディタのbuildエラーが出ませんが、Unityでは読み込めない、という状況が確認されています。
unityの仕様(不具合)かなと思います。
BG(背景画像)の描画優先度を下げることで解決します。
BGのInspectorViewでOrder in Layerを-1にしてください
(テキストの手順にも追記しておきました)