ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild3
https://itest.5ch.net/mevius/test/read.cgi/gamedev/1578720539
【ゲームエンジン】Unity初心者質問スレBuild4
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2020/03/29(日) 19:35:12.24ID:mirhKW7D259名前は開発中のものです。
2020/04/24(金) 15:29:16.14ID:hbCzfYWk staticじゃなくする
260名前は開発中のものです。
2020/04/24(金) 15:54:14.93ID:9IIgbh3E すいません一部コードが間違っていました
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow + iNum , jNow + jNum , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
staticをつけている変数については、別スクリプトで呼び出して値を代入しているため
staticを外すとエラーが出てしまいます。
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow + iNum , jNow + jNum , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
staticをつけている変数については、別スクリプトで呼び出して値を代入しているため
staticを外すとエラーが出てしまいます。
261名前は開発中のものです。
2020/04/24(金) 16:51:57.34ID:hbCzfYWk staticをつけると、その変数は
そのクラスで共通のものになる。
だからこれだと複製したオブジェクト全員が、ある一つのオブジェクトを操作している状態。
そのクラスで共通のものになる。
だからこれだと複製したオブジェクト全員が、ある一つのオブジェクトを操作している状態。
262名前は開発中のものです。
2020/04/24(金) 17:53:17.83ID:mqgYLk8R staticを理解していない?
staticをつけると、簡単に言えばそのワールドで唯一の変数名になる。だから複数から参照操作はできるが、唯一を2つ存在させたら、どっちを参照するかわからんよね?
staticをつけると、簡単に言えばそのワールドで唯一の変数名になる。だから複数から参照操作はできるが、唯一を2つ存在させたら、どっちを参照するかわからんよね?
263名前は開発中のものです。
2020/04/24(金) 17:57:06.91ID:9IIgbh3E264弟子
2020/04/24(金) 19:36:00.79ID:X9i2PnLo >>263
>260のコードで動かすにはこのようにします
多分Staticの使い方というより、prefabの生成に問題あると思います
https://i.gyazo.com/9eea2661448b7a1af4e8291b55adfe25.png
https://imgur.com/dBRzNly
質問は検証できる弟子を指名してね!
>260のコードで動かすにはこのようにします
多分Staticの使い方というより、prefabの生成に問題あると思います
https://i.gyazo.com/9eea2661448b7a1af4e8291b55adfe25.png
https://imgur.com/dBRzNly
質問は検証できる弟子を指名してね!
265名前は開発中のものです。
2020/04/24(金) 21:22:53.35ID:WKjj9eyG266名前は開発中のものです。
2020/04/24(金) 21:26:22.99ID:9IIgbh3E >>264
わざわざソースまでありがとうございます!
わざわざソースまでありがとうございます!
267名前は開発中のものです。
2020/04/25(土) 13:09:23.62ID:c8LTCDvQ https://youtu.be/clB_Q-4N2mM
アニメーションクリップに効果音を付けて4種類のSEの中からランダムで音が出るようにしているのですが、
二回続けて同じ音が出ないようにする方法はないでしょうか。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public AudioClip[] _SE; //SEが4個入っています。
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, 4);
audioSourse.PlayOneShot(_SE[a]);
}
}
このスクリプトを音を鳴らすアニメクリップが付いたオブジェクトにアタッチしています。
二回続けて同じ音が出ないようにする方法があったら教えてください。
https://thuploader.orz.hm/miniup/?mode=dl&id=7354 プロジェクトファイル
アニメーションクリップに効果音を付けて4種類のSEの中からランダムで音が出るようにしているのですが、
二回続けて同じ音が出ないようにする方法はないでしょうか。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public AudioClip[] _SE; //SEが4個入っています。
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, 4);
audioSourse.PlayOneShot(_SE[a]);
}
}
このスクリプトを音を鳴らすアニメクリップが付いたオブジェクトにアタッチしています。
二回続けて同じ音が出ないようにする方法があったら教えてください。
https://thuploader.orz.hm/miniup/?mode=dl&id=7354 プロジェクトファイル
268名前は開発中のものです。
2020/04/25(土) 13:34:15.67ID:Bwa2wt20 aの値を保持して、次の乱数時に比較する
269名前は開発中のものです。
2020/04/25(土) 13:40:39.58ID:2pXFtKle >>267
色んな方法があると思いますが、
再生する度に再生したSEを除外し、除外されていたSEが存在すれば戻すという処理を入れるのはどうですか?
ランダムのレンジにはLengthやCountが使えますので実装自体は数行済むと思います。
配列をリストにした方が簡単だと思います。
色んな方法があると思いますが、
再生する度に再生したSEを除外し、除外されていたSEが存在すれば戻すという処理を入れるのはどうですか?
ランダムのレンジにはLengthやCountが使えますので実装自体は数行済むと思います。
配列をリストにした方が簡単だと思います。
270267
2020/04/25(土) 14:39:00.19ID:c8LTCDvQ >>268の方法は難しそうだったので
>>269の方法で試してみました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
//public AudioClip[] _SE;//配列
public List<AudioClip> _SE;//リスト型に変更
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count);//_SE.Count リストの中の要素の個数
audioSourse.PlayOneShot(_SE[a]);
_SE.RemoveAt(a); //一度鳴ったSEを削除
}
}
SEの配列を、リスト型に変更して、一度なったSEを削除するところまでは出来たのですが
消したリストを次のSEを鳴らすときに元に戻すやり方が分かりませんでした。
どうすれば消したリストを元に戻すことができるでしょうか。
>>269の方法で試してみました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
//public AudioClip[] _SE;//配列
public List<AudioClip> _SE;//リスト型に変更
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count);//_SE.Count リストの中の要素の個数
audioSourse.PlayOneShot(_SE[a]);
_SE.RemoveAt(a); //一度鳴ったSEを削除
}
}
SEの配列を、リスト型に変更して、一度なったSEを削除するところまでは出来たのですが
消したリストを次のSEを鳴らすときに元に戻すやり方が分かりませんでした。
どうすれば消したリストを元に戻すことができるでしょうか。
271名前は開発中のものです。
2020/04/25(土) 15:01:53.19ID:Bwa2wt20 >>270
嘘だろぉ、おい!w
嘘だろぉ、おい!w
272くまじょ
2020/04/25(土) 15:23:53.23ID:z5N+YfUG 俺なら前回の覚えておいて
乱数が同じものだったら+1
わずかに乱数に偏りが起こるけど
乱数が同じものだったら+1
わずかに乱数に偏りが起こるけど
273くまじょ
2020/04/25(土) 15:30:30.75ID:z5N+YfUG 乱数が選んだものをリストから抜いてリストの最後に追加しておくとか
乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける
初回は必ずリストの最後が選ばれないことになるけど
乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける
初回は必ずリストの最後が選ばれないことになるけど
274名前は開発中のものです。
2020/04/25(土) 15:38:16.06ID:DiGw5Kl0 横から失礼します
特定のAudioClipが再生中かどうかを検出するとかってできますか?
例)
if(Audioclip(ジャンプ音)が再生中){ 処理 }
みたいなことがやりたいのですが
特定のAudioClipが再生中かどうかを検出するとかってできますか?
例)
if(Audioclip(ジャンプ音)が再生中){ 処理 }
みたいなことがやりたいのですが
275名前は開発中のものです。
2020/04/25(土) 15:47:10.29ID:a3TA/N7F 乱数記憶用の変数を用意
初期値は999などの有り得ない数
または一番目に鳴らしたくない音と同じ数
ランダムで出した乱数を変数と比較
もし同じ数字なら+1または-1して処理
(このスクリプトだと3の場合のみ-1)
また乱数(または処理後の数値)を変数に入れる
自分ならこれにするけど何せ初心者なので
もっとスマートなやり方があるならそっちで
初期値は999などの有り得ない数
または一番目に鳴らしたくない音と同じ数
ランダムで出した乱数を変数と比較
もし同じ数字なら+1または-1して処理
(このスクリプトだと3の場合のみ-1)
また乱数(または処理後の数値)を変数に入れる
自分ならこれにするけど何せ初心者なので
もっとスマートなやり方があるならそっちで
276名前は開発中のものです。
2020/04/25(土) 16:04:41.65ID:2pXFtKle >>273の再生したSEをリストの最後に追加してランダムのレンジに含めないがスマートで実用的かもしれませんね。
+1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか?
+1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか?
278267
2020/04/25(土) 17:19:22.65ID:c8LTCDvQ 皆さんから助言を頂いて有難うございました。
>>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public List<AudioClip> _SE;//リスト型 4つのSE
AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す
audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす
AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる
_SE.RemoveAt(a); //選ばれて鳴ったSEを削除
_SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加
}
}
もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。
本当に有難うございました。助かりました。
>>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public List<AudioClip> _SE;//リスト型 4つのSE
AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す
audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす
AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる
_SE.RemoveAt(a); //選ばれて鳴ったSEを削除
_SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加
}
}
もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。
本当に有難うございました。助かりました。
279名前は開発中のものです。
2020/04/25(土) 17:57:08.46ID:P2OYyiKX Unityで2Dゲームを作ろうとしていますが、小さい表示枠と大きい表示枠について教えて下さい。
画像をSceneに配置すると小さい枠の中に置いたものが実行時に表示され、座標はたとえば-2〜+2です。
ヒエラルキーからUIのButtonを配置すると大きい枠の中に置かれ、座標は0-1000などの設定した画面サイズの値になります。
2つの座標系があるようなのですが、Sceneで見ると重なっていないのに実行すると上記の2つ枠は重なって表示されるようです。
なんでこんなことになってるんでしょうか?
両者を混在して使ってると実行環境によってずれが生じそうですが大丈夫なんでしょうか?
また「Unityの教科書 Unity 2019完全対応版」を読みましたが、次に読むと良さそうな本があったら教えて下さい。
画像をSceneに配置すると小さい枠の中に置いたものが実行時に表示され、座標はたとえば-2〜+2です。
ヒエラルキーからUIのButtonを配置すると大きい枠の中に置かれ、座標は0-1000などの設定した画面サイズの値になります。
2つの座標系があるようなのですが、Sceneで見ると重なっていないのに実行すると上記の2つ枠は重なって表示されるようです。
なんでこんなことになってるんでしょうか?
両者を混在して使ってると実行環境によってずれが生じそうですが大丈夫なんでしょうか?
また「Unityの教科書 Unity 2019完全対応版」を読みましたが、次に読むと良さそうな本があったら教えて下さい。
281くまじょ
2020/04/25(土) 18:23:08.63ID:z5N+YfUG >>279
シーンで見ると大きさが違うのと位置がずれてるのが邪魔で仕方ない
シーンで同じ位置同じ大きさ(見た目のことで座標の数値は違う)にするか
いっそのことシーンでは離れているが実行時に同じにしてみたり
重なってると邪魔なので
キャンバスのインスペクタを弄れば見た目の大きさは揃うよ
座標は-2とかのままがイイみたい
あれはメートルって意味らしい
シーンで見ると大きさが違うのと位置がずれてるのが邪魔で仕方ない
シーンで同じ位置同じ大きさ(見た目のことで座標の数値は違う)にするか
いっそのことシーンでは離れているが実行時に同じにしてみたり
重なってると邪魔なので
キャンバスのインスペクタを弄れば見た目の大きさは揃うよ
座標は-2とかのままがイイみたい
あれはメートルって意味らしい
282くまじょ
2020/04/25(土) 18:23:58.70ID:z5N+YfUG 詳しいことは俺も知りたい
283名前は開発中のものです。
2020/04/25(土) 18:32:34.76ID:Bwa2wt20 >>279
1冊読んで1本作れたなら、漠然とした指南は必要ないかなぁ。
あとは、ネットやるならオンライン系とか、作りたいものに合わせて選ぶだけだよ。
まだ1本も完成させてないなら、本より作り上げることかな。
1冊読んで1本作れたなら、漠然とした指南は必要ないかなぁ。
あとは、ネットやるならオンライン系とか、作りたいものに合わせて選ぶだけだよ。
まだ1本も完成させてないなら、本より作り上げることかな。
284279
2020/04/25(土) 20:19:30.59ID:P2OYyiKX285名前は開発中のものです。
2020/04/26(日) 17:01:21.87ID:0LPIhU5v ・シーンにオブジェクトAとBを作る
・Bをプレハブ化
・GetComponentを記したスクリプトをBにアタッチ、そのインスペクタ内でAをアタッチ
・いざ実行すると、後者からAが消えておりnullが入ってる
これはどういうカラクリ?
GetComponentで保持できるのは同一シーン内のオブジェクトだけで、
プレハブは別シーン扱いだから不可ってこと?
・Bをプレハブ化
・GetComponentを記したスクリプトをBにアタッチ、そのインスペクタ内でAをアタッチ
・いざ実行すると、後者からAが消えておりnullが入ってる
これはどういうカラクリ?
GetComponentで保持できるのは同一シーン内のオブジェクトだけで、
プレハブは別シーン扱いだから不可ってこと?
286名前は開発中のものです。
2020/04/26(日) 20:07:03.91ID:y6nEuqYj 初心者すぎる質問で申し訳ない
自分の街の地図データ(OSM)をUnityに取り込みたい
OSM2World(http://osm2world.org/download/)をダウンロードして
以下の記事を参考に頑張っているのだけど、
https://qiita.com/hiroga/items/8f8496af23c3661f4092
使い方wiki(https://wiki.openstreetmap.org/wiki/JA:OSM2World)に書いてあるGUI操作というものが分からずOSM2World を実行できずにいる
ダウンロードした中にアプリケーションらしきファイルはないし、どうやって実行するのか分からない
自分の街の地図データ(OSM)をUnityに取り込みたい
OSM2World(http://osm2world.org/download/)をダウンロードして
以下の記事を参考に頑張っているのだけど、
https://qiita.com/hiroga/items/8f8496af23c3661f4092
使い方wiki(https://wiki.openstreetmap.org/wiki/JA:OSM2World)に書いてあるGUI操作というものが分からずOSM2World を実行できずにいる
ダウンロードした中にアプリケーションらしきファイルはないし、どうやって実行するのか分からない
287名前は開発中のものです。
2020/04/27(月) 07:09:26.36ID:bdPBx+if 垢付き無視されてて草
288名前は開発中のものです。
2020/04/27(月) 15:39:27.94ID:slOrZu1n エアプババアこと煖エ聖子さーん!
Unity 触ったこともないくせにググって出てきたブログの内容をパクってスレに書き込まないでくださーい!
Unity 触ったこともないくせにググって出てきたブログの内容をパクってスレに書き込まないでくださーい!
289名前は開発中のものです。
2020/04/27(月) 19:31:18.81ID:S31Ss8MO 画面をドラッグしたらそれに合わせて
画面中心に置いてあるキューブのオブジェクトが回転するようにしたのですが、
例外的に画面のUI部分をドラッグしても何も起きないようにしたいです。
試しに画面内にボタンを配置してみますと、
ボタン部分をドラッグしてもキューブは回転しませんでした。
ですが、ボタンではなくスクロールビューを配置しますと、
スクロールビュー内で中身をスクロールさせる際に
キューブも回転してしまいます。
これは何が原因なのでしょうか?
スクロールビュー内でスクロールさせても、
キューブは回転しないようにしたいのですが。。。
画面中心に置いてあるキューブのオブジェクトが回転するようにしたのですが、
例外的に画面のUI部分をドラッグしても何も起きないようにしたいです。
試しに画面内にボタンを配置してみますと、
ボタン部分をドラッグしてもキューブは回転しませんでした。
ですが、ボタンではなくスクロールビューを配置しますと、
スクロールビュー内で中身をスクロールさせる際に
キューブも回転してしまいます。
これは何が原因なのでしょうか?
スクロールビュー内でスクロールさせても、
キューブは回転しないようにしたいのですが。。。
290名前は開発中のものです。
2020/04/27(月) 22:29:11.94ID:BsJwJx+j ローグライクゲームで使われるようなテキストボックスの作り方を教えてください
具体的にはテキストボックスは4行目まで表示可能で
5行以上のテキストは初めに上4行が表示され、時間経過で下4行まで
スライドするようなものです
文字のフォントサイズとスライドの幅の関係がわからず
行数が増えてしまうと文字が見切れてしまうのですが
どうしたらよいでしょうか
具体的にはテキストボックスは4行目まで表示可能で
5行以上のテキストは初めに上4行が表示され、時間経過で下4行まで
スライドするようなものです
文字のフォントサイズとスライドの幅の関係がわからず
行数が増えてしまうと文字が見切れてしまうのですが
どうしたらよいでしょうか
291名前は開発中のものです。
2020/04/28(火) 08:42:29.47ID:UBexnHTQ アセットストアで探すのはダメか?
292名前は開発中のものです。
2020/04/28(火) 08:57:56.02ID:NcdKxY7p ありよ
293くまじょ
2020/04/28(火) 10:45:18.76ID:9EVv0REZ UIのTextではなくて
GameObjectの子要素として文字や数字を表示したいときどうするのでしょうか
GameObjectの子要素として文字や数字を表示したいときどうするのでしょうか
294帝王
2020/04/28(火) 19:39:00.29ID:+kIsn7nO TextMeshProとかでできるんじゃないのーー?
(適当)
(適当)
295名前は開発中のものです。
2020/04/28(火) 20:05:51.71ID:g/IoFmi8 UGUIのイメージをドラッグして移動させたいのですが、
canvasの設定をscreenspace overlayからcameraに変更するとドラッグ中に描画されなくなってしまいます。
パーティクルを前面に表示させるためにcanvasの設定を変えました。
考えられる原因はありますか?
canvasの設定をscreenspace overlayからcameraに変更するとドラッグ中に描画されなくなってしまいます。
パーティクルを前面に表示させるためにcanvasの設定を変えました。
考えられる原因はありますか?
296名前は開発中のものです。
2020/04/29(水) 02:19:06.55ID:QIimNiIX なぁ
初心者じゃないよな?
初心者じゃないよな?
297名前は開発中のものです。
2020/04/29(水) 02:25:33.41ID:0hW05Uib 上級者ばかりやんけ
298295
2020/04/29(水) 05:03:31.36ID:AYSL0fpT >>296
自分の事でしょうか?
練習でトランプを作っていて、初心者なので全てUIで作ってしまいました。
アセットセールで初めて買ったパーティクルをエフェクトとして表示したかったのですが、UIが最前面に来るので表示できませんでした。
自分で調べてcanvasの設定を変えることでパーティクルは表示されたのですが、カードをドラッグすると消えてしまう様になりました。
2Dのゲームを作る時のカードの絵?オブジェクト?というのはどうやって表示させるのが正しいのでしょうか?
いつもcanvasを1つ作って全てその中にUIで作ってしまっています。。
自分の事でしょうか?
練習でトランプを作っていて、初心者なので全てUIで作ってしまいました。
アセットセールで初めて買ったパーティクルをエフェクトとして表示したかったのですが、UIが最前面に来るので表示できませんでした。
自分で調べてcanvasの設定を変えることでパーティクルは表示されたのですが、カードをドラッグすると消えてしまう様になりました。
2Dのゲームを作る時のカードの絵?オブジェクト?というのはどうやって表示させるのが正しいのでしょうか?
いつもcanvasを1つ作って全てその中にUIで作ってしまっています。。
299名前は開発中のものです。
2020/04/29(水) 05:22:31.24ID:sJVhQ7Za エディタ拡張を使ってゲームオブジェクトの変数をいじってみたのですが、実行してみると、
↓のような感じで、inspector上で直接打ち込んだ数字に戻ってしまいます
https://i.imgur.com/REjqphY.png
どうにか保持する方法はないでしょうか?
↓のような感じで、inspector上で直接打ち込んだ数字に戻ってしまいます
https://i.imgur.com/REjqphY.png
どうにか保持する方法はないでしょうか?
301名前は開発中のものです。
2020/04/29(水) 07:31:32.43ID:C9mEi4oT >>298
自分も初心者だけど(しかも始めたばかり)
教本のサンプルスクリプトを改変しながら一本作ったところ
2Dの画像はUIから作る他にヒエラルキーに直接ドラッグ&ドロップする方法があってこの方法で作ったゲームオブジェクトはUIから作ったimageとは仕様が違うということがわかった
全く同じスクリプトを関連づけても動作しなかったり
等倍のはずなのに画像の表示サイズが微妙に大きかったり
UIキャンバスに入れると表示されなくなったり
別の教本では2Dオブジェクト→spriteで同じような用途の画像オブジェクトを作ってたからヒエラルキーにドラックドロップするとspriteになるのかも
Collider2Dで他のオブジェクトとの衝突判定を付けたい2D画像はそうやって配置するというところまでは理解できたけどそれ以上はさっぱりわからない
どれが正しいかじゃなくて用途によって使い分けるみたいだけどね
自分も初心者だけど(しかも始めたばかり)
教本のサンプルスクリプトを改変しながら一本作ったところ
2Dの画像はUIから作る他にヒエラルキーに直接ドラッグ&ドロップする方法があってこの方法で作ったゲームオブジェクトはUIから作ったimageとは仕様が違うということがわかった
全く同じスクリプトを関連づけても動作しなかったり
等倍のはずなのに画像の表示サイズが微妙に大きかったり
UIキャンバスに入れると表示されなくなったり
別の教本では2Dオブジェクト→spriteで同じような用途の画像オブジェクトを作ってたからヒエラルキーにドラックドロップするとspriteになるのかも
Collider2Dで他のオブジェクトとの衝突判定を付けたい2D画像はそうやって配置するというところまでは理解できたけどそれ以上はさっぱりわからない
どれが正しいかじゃなくて用途によって使い分けるみたいだけどね
302301
2020/04/29(水) 07:40:32.28ID:C9mEi4oT 投稿してから思い出したけど
同じ著者の別の教本のアプリではUIから作った2D画像にCollider2Dで衝突判定付けてたなぁ
実際に作ってみたけど問題なく動いたし
違うものだということは把握したけど違いがよくわからない
同じ著者の別の教本のアプリではUIから作った2D画像にCollider2Dで衝突判定付けてたなぁ
実際に作ってみたけど問題なく動いたし
違うものだということは把握したけど違いがよくわからない
303名前は開発中のものです。
2020/04/29(水) 08:25:51.33ID:IMZ53Uaz >>295
ドラッグ中のオブジェクトの座標見るとどっか遠いところに行ってるんじゃないの
ドラッグ中のオブジェクトの座標見るとどっか遠いところに行ってるんじゃないの
304名前は開発中のものです。
2020/04/29(水) 08:30:41.83ID:AYSL0fpT >>301
トランスフォームの違いが一番のポイントかと思いますが、仰る通りそれによってサイズや座標違ったりするのが初心者には辛いですね。
シーン画面だとスケール1のスプライトがキャンバスに対して点みたいなサイズになったりしてわけがわかりません。。
初心者がUnityを覚えるには興味が無くても3Dからやった方が良いですね。
自分みたいにカメラや座標の概念が無いまま画像を表示するにはUIからイメージを作りましょう〜みたいな入門を見てしまったら終わりです。
最初にさせてもらった質問についてはいくつか解決案が見つかったのでもう少し頑張ってみます。
トランスフォームの違いが一番のポイントかと思いますが、仰る通りそれによってサイズや座標違ったりするのが初心者には辛いですね。
シーン画面だとスケール1のスプライトがキャンバスに対して点みたいなサイズになったりしてわけがわかりません。。
初心者がUnityを覚えるには興味が無くても3Dからやった方が良いですね。
自分みたいにカメラや座標の概念が無いまま画像を表示するにはUIからイメージを作りましょう〜みたいな入門を見てしまったら終わりです。
最初にさせてもらった質問についてはいくつか解決案が見つかったのでもう少し頑張ってみます。
305名前は開発中のものです。
2020/04/29(水) 08:38:49.37ID:AYSL0fpT >>303
予想ですがドラッグしてる位置の座標がoverlayの時はrecttransformだったのに対して、ワールド座標になったために遥か彼方に飛んでいってしまったんだと思います。
これをどうにかすれば良いと言う事はなんとなくわかったので調べてやってみます。
無理そうならoverlayのまま意図した動作になる様に仕様を変更する方向でも考えてみます。
予想ですがドラッグしてる位置の座標がoverlayの時はrecttransformだったのに対して、ワールド座標になったために遥か彼方に飛んでいってしまったんだと思います。
これをどうにかすれば良いと言う事はなんとなくわかったので調べてやってみます。
無理そうならoverlayのまま意図した動作になる様に仕様を変更する方向でも考えてみます。
306301
2020/04/29(水) 10:10:44.87ID:eQSMcd5l 3Dから初めて挫折した垢付きみたいなガイジもおるからなぁ
座標の概念はパース定規使ったことがあれば2Dから入ってもすぐ慣れるやろ
あかんかどうかはその人次第やな
垢付きは何をやっても駄目やけどな
UIオブジェクトを複製したらUIキャンバスの外に出て座標めちゃくちゃ
座標いじらずにUIキャンバスに戻したら座標は元に戻るもののスケールが微妙におかしい
なんやその0.99なんちゃらかんちゃらっていうのは
1でええやろ1で
Unityあるあるやで〜
座標の概念はパース定規使ったことがあれば2Dから入ってもすぐ慣れるやろ
あかんかどうかはその人次第やな
垢付きは何をやっても駄目やけどな
UIオブジェクトを複製したらUIキャンバスの外に出て座標めちゃくちゃ
座標いじらずにUIキャンバスに戻したら座標は元に戻るもののスケールが微妙におかしい
なんやその0.99なんちゃらかんちゃらっていうのは
1でええやろ1で
Unityあるあるやで〜
307名前は開発中のものです。
2020/04/29(水) 10:58:11.39ID:Ge+X1sPh >>298
動かしたりエフェクト出したりするならスプライトでやったほうが多少処理が軽いけど、
canvsはcanvasでレイアウトが楽とかメリットもあるので好きなやり方でいいと思う。
試しに別のやり方で実装してみたりするといろいろ発見があるかと。
動かしたりエフェクト出したりするならスプライトでやったほうが多少処理が軽いけど、
canvsはcanvasでレイアウトが楽とかメリットもあるので好きなやり方でいいと思う。
試しに別のやり方で実装してみたりするといろいろ発見があるかと。
308くまじょ
2020/04/29(水) 11:00:28.02ID:2WIq4ayc >>300
今は家にいないからunity弄れない
ググってみたところ
Undo.RecordObjectとか使えばいいのかなあ
俺の場合は拡張とかわかんないので違う方法[ExecuteinEditMode]だけど
今は家にいないからunity弄れない
ググってみたところ
Undo.RecordObjectとか使えばいいのかなあ
俺の場合は拡張とかわかんないので違う方法[ExecuteinEditMode]だけど
309名前は開発中のものです。
2020/04/29(水) 11:41:46.95ID:gkpKVPrd visual studio2019でunityのGameobjectとかスニペット使えないんだけど
どうやったら使えますか?
どうやったら使えますか?
310くまじょ
2020/04/29(水) 12:06:13.32ID:JSWzrUs2 >>293
納得いくものではないが自己解決
プレハブにキャンバス置いてUIのテキスト置いた
そのキャラクタを大量にシーンに置いたから
キャンバスの枠が表示されてうざいのでキャンバスのサイズ0にした
unityだけでなく別のツールでも思ったのだが
UIにできて非UIではできないこと
非UIにできてUIではできないこと
というの不便だなあ
納得いくものではないが自己解決
プレハブにキャンバス置いてUIのテキスト置いた
そのキャラクタを大量にシーンに置いたから
キャンバスの枠が表示されてうざいのでキャンバスのサイズ0にした
unityだけでなく別のツールでも思ったのだが
UIにできて非UIではできないこと
非UIにできてUIではできないこと
というの不便だなあ
312名前は開発中のものです。
2020/04/29(水) 13:00:17.87ID:7X6Qdfy+313くまじょ
2020/04/29(水) 13:47:14.76ID:JSWzrUs2 キャンバス以外にも文字書きたいんだよおおお
314名前は開発中のものです。
2020/04/29(水) 16:06:48.36ID:RT7RiZcP >>313
板に文字書いたビットマップ貼ったのじゃだめですか?
板に文字書いたビットマップ貼ったのじゃだめですか?
315弟子
2020/04/29(水) 16:24:45.75ID:j5yLLvLF316くまじょ
2020/04/29(水) 20:06:28.79ID:JSWzrUs2 文字の件はプレハブにキャンバス持たせて表示はできたんだけど
たとえばダメージ受けると数字がこぼれ落ちる演出などはどうするんだろう
自キャラ見方キャラ敵キャラに付けたキャンバスにテキストなのだろうか
今回はそういう用途ではない
たとえばダメージ受けると数字がこぼれ落ちる演出などはどうするんだろう
自キャラ見方キャラ敵キャラに付けたキャンバスにテキストなのだろうか
今回はそういう用途ではない
317くまじょ
2020/04/29(水) 20:09:14.30ID:JSWzrUs2318名前は開発中のものです。
2020/04/29(水) 21:23:38.47ID:Ge+X1sPh 他の人も書いてるけど
TextMeshProじゃだめなの?
ヒエラルキー右クリ→
3Dオブジェクト→Text-TextMeshPro
TextMeshProじゃだめなの?
ヒエラルキー右クリ→
3Dオブジェクト→Text-TextMeshPro
319くまじょ
2020/04/29(水) 21:36:38.87ID:JSWzrUs2 俺には使い方わからなかったがそれで可能ならそれが正解なのかな
記憶の片隅に置いておくよ
記憶の片隅に置いておくよ
320名前は開発中のものです。
2020/04/29(水) 21:55:28.30ID:GicUwo7y プログラム未経験です。
1年を目途にゲーム制作し、1作目でまずは100万の利益を狙いたいと思いますが
何から始めたらいいでしょうか。
1年を目途にゲーム制作し、1作目でまずは100万の利益を狙いたいと思いますが
何から始めたらいいでしょうか。
321名前は開発中のものです。
2020/04/29(水) 22:03:00.75ID:RT7RiZcP >>320
初心者向けの本でも買ってチュートリアルやるとかから始めたほうがいいんじゃないですか。
初心者向けの本でも買ってチュートリアルやるとかから始めたほうがいいんじゃないですか。
322名前は開発中のものです。
2020/04/29(水) 23:21:03.48ID:IMZ53Uaz 釣りはよそでどうぞ
323名前は開発中のものです。
2020/04/30(木) 00:32:39.07ID:hTGJdOAW テストプレイ中(UNITYで再生中)に
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?)
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?)
324名前は開発中のものです。
2020/04/30(木) 03:18:23.92ID:uP6BsH0v はい、気のせいです。
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる
325名前は開発中のものです。
2020/04/30(木) 03:33:51.89ID:yZzY0I2t326名前は開発中のものです。
2020/04/30(木) 05:33:09.73ID:rTPsa1+b ユニットをクリックすると移動できる範囲の色を変えるという実装を作ろうとしています。
UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。
ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。
UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。
ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。
327名前は開発中のものです。
2020/04/30(木) 05:55:20.90ID:rTPsa1+b328名前は開発中のものです。
2020/04/30(木) 06:48:03.52ID:XHyCB/e1 UnityでFE風のSRPGを作ってる人のブログを前に見たな
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた
329名前は開発中のものです。
2020/04/30(木) 11:41:17.32ID:V6Pk2JwW http://s.kota2.net/1588213392.png
ボタンを押すと5の星だけが表示されるスクリプトなのですが、
親になっている星のオブジェクトをpublicで参照するやり方ではなくて
Findでヒエラルキーから探してくるやり方に変更したら動かなくなりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Button5star : MonoBehaviour//ボタンにアタッチ
{
//public Transform STARParent; //publicで参照するのをやめる
Transform STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
public void button5star()
{
for (int i = 0; i < STARParent.childCount; ++i) // for文
{
STARParent.GetChild(i).gameObject.SetActive(false);//STARParentの子を一旦全部消す
STARParent.transform.Find("star (5)").gameObject.SetActive(true);
}
}
}
-----------------------------
starParentは空のオブジェクトで子のstarは画像のspriteです。
Findで探している部分が間違っているのでしょうか?
ボタンを押すと5の星だけが表示されるスクリプトなのですが、
親になっている星のオブジェクトをpublicで参照するやり方ではなくて
Findでヒエラルキーから探してくるやり方に変更したら動かなくなりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Button5star : MonoBehaviour//ボタンにアタッチ
{
//public Transform STARParent; //publicで参照するのをやめる
Transform STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
public void button5star()
{
for (int i = 0; i < STARParent.childCount; ++i) // for文
{
STARParent.GetChild(i).gameObject.SetActive(false);//STARParentの子を一旦全部消す
STARParent.transform.Find("star (5)").gameObject.SetActive(true);
}
}
}
-----------------------------
starParentは空のオブジェクトで子のstarは画像のspriteです。
Findで探している部分が間違っているのでしょうか?
330名前は開発中のものです。
2020/04/30(木) 12:26:29.47ID:uP6BsH0v どう動かなくなるのか…
331329
2020/04/30(木) 12:40:54.07ID:V6Pk2JwW332名前は開発中のものです。
2020/04/30(木) 12:44:12.91ID:fCNBU+9B >>329
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。
Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
}
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。
Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
}
333名前は開発中のものです。
2020/04/30(木) 12:44:37.30ID:yZzY0I2t 簡略化してるのかと思ってたけど
もしかしてStart()とかの関数の外でGetComponentしてる?
もしかしてStart()とかの関数の外でGetComponentしてる?
334329
2020/04/30(木) 13:01:25.70ID:V6Pk2JwW >>332 333
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。
publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。
publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。
335ダーク王鍬大使 ◆SoVpkB15jY
2020/04/30(木) 17:20:43.40ID:sYkR1Hoa 僕もガチ初心者の頃にメソッドの外でGetComponentしようとしたことがありまひた(^^
誰もが通る道なのでふね(^^
ボッキング!(^^
誰もが通る道なのでふね(^^
ボッキング!(^^
336名前は開発中のものです。
2020/04/30(木) 17:46:57.14ID:Svx3VR2I 昨日screenspace.cameraでのUGUIのドラッグについて質問した者ですが、やっと画面に表示される様になったもののクリックした位置のかなり左にオブジェクトがワープしてしまう様になりました。
もうお手上げです\(^o^)/
もうお手上げです\(^o^)/
337名前は開発中のものです。
2020/04/30(木) 20:54:04.01ID:dWqwrf+A 原因が同じかどうかはともかく
自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな
自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな
338名前は開発中のものです。
2020/04/30(木) 20:54:38.25ID:uP6BsH0v クリックした時の座標データを表示して、見る。
339名前は開発中のものです。
2020/04/30(木) 21:02:57.29ID:OfoKVMka 質問時にエラーが出てる時は必ず言って欲しいわ
340名前は開発中のものです。
2020/04/30(木) 21:28:21.64ID:Svx3VR2I ワープ現象は手札置き場パネルのホリゾンタルレイアウトがカードオブジェクトのアンカー?を左上にセットしていたのが原因っぽいです。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。
screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。
同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!
>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。
screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。
同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!
>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。
341名前は開発中のものです。
2020/04/30(木) 21:28:31.81ID:dWqwrf+A そういえば自分の時はコンソールに何かエラーメッセージが出てたな
342名前は開発中のものです。
2020/04/30(木) 21:34:42.74ID:rTPsa1+b ここで質問していろいろ弄ってわかったことのメモを置いておきます。
【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。
@uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。
ASpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)
実行時には@とAは重なって表示されます。
まだよくわかっていませんが、@の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
@とAはずれるかもしれず、その辺りのケアも必要になるかもしれません。
【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。
@uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。
ASpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)
実行時には@とAは重なって表示されます。
まだよくわかっていませんが、@の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
@とAはずれるかもしれず、その辺りのケアも必要になるかもしれません。
343名前は開発中のものです。
2020/05/01(金) 00:44:39.66ID:YDQCTUGy UGUIではUIを作りましょうって事なんだろうけど、レイヤーを指定して最前面以外に描画できるだけで初心者にはありがたいのになぁ。
344名前は開発中のものです。
2020/05/01(金) 20:23:56.53ID:HXkpQ0jK おすすめのアセット教えてください(´・ω・`)
345名前は開発中のものです。
2020/05/01(金) 20:37:55.42ID:KuaWU/nQ 何が欲しいねん2Dキャラ欲しいのにSE集いらないやろ
346名前は開発中のものです。
2020/05/01(金) 22:22:08.05ID:YDQCTUGy347名前は開発中のものです。
2020/05/02(土) 00:55:55.47ID:d/s8ZDya 宴を買ったけど今すぐ使いたいのはダイヤローグシステムの方だった
次のセールでも半額になっていますように
次のセールでも半額になっていますように
348名前は開発中のものです。
2020/05/02(土) 01:17:02.21ID:z//Ej8ZX349名前は開発中のものです。
2020/05/02(土) 04:48:49.83ID:qMjLJQ/3350名前は開発中のものです。
2020/05/02(土) 04:58:59.91ID:qMjLJQ/3 >>344
最近買った本にオススメアセットが乗っていました。
Playmaker($65):プログラミング補助ツール
DOTween(無料):オブジェクトアニメーション
Easy Save The Complete Save & Load Tool for Unity ($24.99):セーブやロード実装
Anti Cheat Tool Kit($50):チート対策
UniRx - Reactive Extensions for Unity(無料):コルーチン等非同期処理ライブラリ
JSON .Net For Unity(無料):オブジェクト↔Jsonの変換ライブラリ
Lean Touch(無料):タッチパネル操作
宴3 Unity Text Adventure Game Engine Version3($80):ノベルゲームエンジン
Fungus(無料):ノベルゲームエンジン(ノベルがメインじゃないゲーム用)
Camera Filter Pack($15):カメラエフェクト
Unity Particle Pack(無料):公式エフェクトサンプル
6000+ Flat Buttons Icons Pack($5.99):アイコンやボタンのデザインアセット
最近買った本にオススメアセットが乗っていました。
Playmaker($65):プログラミング補助ツール
DOTween(無料):オブジェクトアニメーション
Easy Save The Complete Save & Load Tool for Unity ($24.99):セーブやロード実装
Anti Cheat Tool Kit($50):チート対策
UniRx - Reactive Extensions for Unity(無料):コルーチン等非同期処理ライブラリ
JSON .Net For Unity(無料):オブジェクト↔Jsonの変換ライブラリ
Lean Touch(無料):タッチパネル操作
宴3 Unity Text Adventure Game Engine Version3($80):ノベルゲームエンジン
Fungus(無料):ノベルゲームエンジン(ノベルがメインじゃないゲーム用)
Camera Filter Pack($15):カメラエフェクト
Unity Particle Pack(無料):公式エフェクトサンプル
6000+ Flat Buttons Icons Pack($5.99):アイコンやボタンのデザインアセット
351名前は開発中のものです。
2020/05/02(土) 23:46:10.49ID:jg5HGTGy ずっと解決できない不具合があり教えて頂きたいです。
http://s.kota2.net/1588430526.gif
ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。
RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
http://s.kota2.net/1588430526.gif
ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。
RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
352名前は開発中のものです。
2020/05/02(土) 23:54:46.74ID:liKQCy1q GameObject.Findは非アクティブオブジェを検索できないから、
//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);
にすればいいんじゃないかな
//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);
にすればいいんじゃないかな
353名前は開発中のものです。
2020/05/03(日) 00:15:02.81ID:mGAguN+2 >>352
ごめんなさい親がTransform関数だからtransformいらなかった(あっても通るけど)
Parent.Find("RedMan").gameObject.SetActive(true);
でいけると思います
ごめんなさい親がTransform関数だからtransformいらなかった(あっても通るけど)
Parent.Find("RedMan").gameObject.SetActive(true);
でいけると思います
354名前は開発中のものです。
2020/05/03(日) 00:46:47.83ID:3PYqNA60 >>352>>353
どうも有難うございます。
GameObject.FindからParent.Findに変更したことで挙動が一歩先に進みました。
http://s.kota2.net/1588433567.gif
「赤い人」が表示されるようになりましたが、
「赤い人」に付いているスタート関数通りに動いていません。
「赤い人になるボタン」が非表示になり「青い人になるボタン」が表示されるはず(ループする)なのですが、「赤い人になるボタン」が残ったままです。
赤い人に付いているスタート関数
using UnityEngine;
public class RedMan : MonoBehaviour
{
void Start()
{
Transform Parent = GameObject.Find("Canvas").GetComponent<Transform>();//キャンバスを参照
Parent.transform.Find("BlueButton").gameObject.SetActive(true);//「青い人になるボタン」表示
Parent.transform.Find("RedButton").gameObject.SetActive(false);//「赤い人になるボタン」非表示
}
}
「赤い人」が表示されて最初の状態に戻ったのでループするはずですが、「赤い人」が表示されているのに↑のスタート関数通りに動いていません。ゲームスタート時はRedManが表示、BlueManが非表示の状態から始まりました。
Parent.transform.Findにしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。
どうも有難うございます。
GameObject.FindからParent.Findに変更したことで挙動が一歩先に進みました。
http://s.kota2.net/1588433567.gif
「赤い人」が表示されるようになりましたが、
「赤い人」に付いているスタート関数通りに動いていません。
「赤い人になるボタン」が非表示になり「青い人になるボタン」が表示されるはず(ループする)なのですが、「赤い人になるボタン」が残ったままです。
赤い人に付いているスタート関数
using UnityEngine;
public class RedMan : MonoBehaviour
{
void Start()
{
Transform Parent = GameObject.Find("Canvas").GetComponent<Transform>();//キャンバスを参照
Parent.transform.Find("BlueButton").gameObject.SetActive(true);//「青い人になるボタン」表示
Parent.transform.Find("RedButton").gameObject.SetActive(false);//「赤い人になるボタン」非表示
}
}
「赤い人」が表示されて最初の状態に戻ったのでループするはずですが、「赤い人」が表示されているのに↑のスタート関数通りに動いていません。ゲームスタート時はRedManが表示、BlueManが非表示の状態から始まりました。
Parent.transform.Findにしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。
355名前は開発中のものです。
2020/05/03(日) 01:05:15.72ID:mGAguN+2356名前は開発中のものです。
2020/05/03(日) 01:20:39.40ID:3PYqNA60357名前は開発中のものです。
2020/05/04(月) 11:48:55.60ID:J4ms5P/o ヒエラルキー
Canvas
image
もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら
{
処理
}
それ以外
{
処理
}
というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。
Canvas
image
もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら
{
処理
}
それ以外
{
処理
}
というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。
358名前は開発中のものです。
2020/05/04(月) 11:59:50.15ID:FDckzKji 子の取得
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。
359名前は開発中のものです。
2020/05/04(月) 16:56:20.55ID:4sVluEfA なんでもかんでも、public にするのは良くないと
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?
そうであるとすれば、個人制作であれば
それほど気にしなくていいですか?
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?
そうであるとすれば、個人制作であれば
それほど気にしなくていいですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★3 [♪♪♪★]
- 台湾有事での集団的自衛権行使に「賛成」が48.8%、「反対」が44.2% ★8 [♪♪♪★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 [ぐれ★]
- 【立憲民主党】「質問レベルの低さが立憲の存立危機事態」台湾有事発言を引き出した立憲“執拗追及”が波紋… ★2 [尺アジ★]
- 【芸能】aiko「50歳になりました!」 祝福&驚きの声続々「20代にしか見えない」「何で年取らないの」 [冬月記者★]
- 中国「ごめん、色々やりすぎた謝るから和解してほしい」高市首相「舐めてんの?」 [834922174]
- 🏡😡
- 高市のマウント発言って誰のせいにされると思う? [237216734]
- 空気変わったな
- 中国「国連さん聞いて!日本が反省しないの!日本は武力介入しようとしてるよ!」
- 【悲報】フィギュアスケート人気、めちゃくちゃ落ちる💥💥wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [573041775]
