unityでゲーム作りたい(Help!) (416レス)
上下前次1-新
332: くまじょ 2020/05/10(日)13:05 ID:xnh23sLS(1) AAS
外部リンク:kmajo.starfree.jp
右下の青いのをクリックすると最大化する
もとは640x640のサイズだが
このときフルスクリーンにあわせて横長になるのってどうにかならんのかなあ
優先度は低い
333: 弟子 ◆rZPPjYuxmQ 2020/05/12(火)19:30 ID:L4ZTxgoY(1/2) AAS
クリックの件、手っ取り早い方法
using UnityEngine.EventSystems;
public class ClickCntrl : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(0))
{
if (EventSystem.current.IsPointerOverGameObject())
{
return;
}
}
if (Input.GetMouseButtonDown(0))
{
print("down");
}
if (Input.GetMouseButtonUp(0))
{
print("up");
}
}
334(2): 弟子 2020/05/12(火)19:31 ID:L4ZTxgoY(2/2) AAS
IsPointerOverGameObject はUIかどうかの判定みたいなのでUIでクリックしたら無視でける
他に要件あればつかえんかもしれ・・・
335: くまじょ 2020/05/12(火)19:56 ID:BsMD4e4s(1) AAS
>>334
ありがとう
336: 帝王 2020/05/13(水)18:07 ID:HjKhPclg(1/4) AAS
>>334
もしかしてボタンを押されたらbool値を返すようなメソッドって
UI関係にあります?
337: 弟子 2020/05/13(水)21:10 ID:oin7oldA(1/4) AAS
すまん意味不明なんだが
何のBool値が欲しいのです?
ボタン押してもそこにスクリプト付けてないと何も動きません
338: 帝王 2020/05/13(水)21:18 ID:HjKhPclg(2/4) AAS
えーと
ボタンを調べたら
いろいろ制限があるらしくて
Button.onClicked == true みたいなboolのものはないということで
onclickするメソッドもpublic voidにしなきゃいけないらしいし
戻り値を指定できないし
あとボタンに引数も付けられるものが限られるので
インスペクタ上で引数1は持てるけど
string型とかだけならできるけどという感じで
調べてもよくわかんなかった
意外とボタンって制限多いんだなと
339(1): 弟子 2020/05/13(水)21:54 ID:oin7oldA(2/4) AAS
引数色々指定できますよ
何をしたいか具体例にいってくれないとわからんよ
340: 帝王 2020/05/13(水)22:15 ID:HjKhPclg(3/4) AAS
>>339
そうですか
すみません
調べ足りてないのかな
341: 弟子 2020/05/13(水)22:19 ID:oin7oldA(3/4) AAS
多分調べても欲しい情報は出て来ないのよ
ブログとかアフォな情報しかないから
やりたいことを具体的に書いてくれれば弟子が試してコード載せますよ
プログラムやる上で重量なことは何をどうしたいか具体的な事ね
342: 弟子 2020/05/13(水)22:22 ID:oin7oldA(4/4) AAS
あ、でももう弟子は飲んで酔ってるから
試すのは明日になるからねっ
343: 帝王 2020/05/13(水)22:38 ID:HjKhPclg(4/4) AAS
いや物自体は完成してるのよ
ただぼたんで2,3日つまったから
IsPointerOverGameObjectとかそういうのでtrue falseを持てれば
複数の中から目的のものをボタンで3,4つの引数持たせて実行できれば
あとwait処理も入れたいので
waitしながらボタン処理を待ってそのあと目的のものを処理したら
waitを中止するというのを作ろう
と思ったら目的のものがnullだったことに気づいて
ステップ実行で何とかなったんだけど
ボタンの処理がどうしてもスクリプトから独立していて
うまく繋げられなかったんだ
344(2): くまじょ 2020/05/14(木)05:33 ID:6hw1sJEU(1/12) AAS
ScriptPai pai = Instantiate(prefabPai).GetComponent<ScriptPai>();
Destroy(pai.gameObject);
として実際見た目も消えているのに
GameObject.FindGameObjectsWithTag("Pai");
で消したはずのも検出してしまう
Destroy(pai.gameObject);を実行前にタグ名を変えておくことでごまかすけど
345: くまじょ 2020/05/14(木)05:39 ID:6hw1sJEU(2/12) AAS
>>344
[ExecuteAlways]が悪さしてるのかなあ
変更が多くてなくせないから検証してない
346(1): 弟子 2020/05/14(木)06:49 ID:1K896jy3(1/7) AAS
>>344
それ実行したらヒエラルキーにゲームオブジェクト出来てるとおもうけどどうでしょ
まずスクリプト型オブジェクトの取得にinstantiate の帰り値指定してるけど、そもそもinstantiate はゲームオブジェクトを生成する命令
そのためスクリプトオブジェクトを破棄してもinstantiate で生成されたオブジェクトは破棄してないから残ってると推測
複雑にしないで順序だててやればいいかと
347: くまじょ 2020/05/14(木)08:33 ID:LxPnkdhJ(1/2) AAS
>>346
それが消えてるのに数が合わない
348: くまじょ 2020/05/14(木)08:37 ID:LxPnkdhJ(2/2) AAS
時間があるときにでも確認してみる
複数シーンを使用している
349(3): くまじょ 2020/05/14(木)20:17 ID:6hw1sJEU(3/12) AAS
GameObject[] goPais;
goPais = GameObject.FindGameObjectsWithTag("Pai");
if(goPais.Length != 0)
{
Debug.Log("★-1- おかしな現象が起きてるぞ goPais.Length=" + goPais.Length);
}
ScriptPai pai = MakePai(0, 0, 0);
goPais = GameObject.FindGameObjectsWithTag("Pai");
if (goPais.Length != 1)
{
Debug.Log("★-2- おかしな現象が起きてるぞ goPais.Length=" + goPais.Length);
}
//pai.tag = "Player"; // このあとDestroyしてるのにGameObject.FindGameObjectsWithTag("Pai");で見つけてしまう
Destroy(pai.gameObject);
goPais = GameObject.FindGameObjectsWithTag("Pai");
if (goPais.Length != 0)
{
Debug.Log("★-3- おかしな現象が起きてるぞ goPais.Length="+ goPais.Length);
}
350(1): くまじょ 2020/05/14(木)20:21 ID:6hw1sJEU(4/12) AAS
>>349
★-3- おかしな現象が起きてるぞ
が表示された
つまり
Destroyしたのに
GameObject.FindGameObjectsWithTagが見つけてしまう
このあと、
goPais = GameObject.FindGameObjectsWithTag("Pai");
goPais[0]になにかすると
すでにdestroyされているのでエラーになる
351: くまじょ 2020/05/14(木)20:25 ID:6hw1sJEU(5/12) AAS
>>349
GameObject.Destroyを使った方がいいのか?
352(1): くまじょ 2020/05/14(木)20:30 ID:6hw1sJEU(6/12) AAS
>>344-350
この質問を解決とします
どうやらこういう動作をするものらしい
Destroy(pai.gameObject);で即死はしていないので注意ってことだ
353: 2020/05/14(木)20:40 ID:1t2wFzuc(1) AAS
うん、おめでとう
354(1): くまじょ 2020/05/14(木)20:51 ID:6hw1sJEU(7/12) AAS
>>350
訂正
Destroy() した直後は生きているから
m_goPais = GameObject.FindGameObjectsWithTagが見つけてしまう
直後ではなくて後で
m_goPais[0]に何かするとすでにdestroyされているのでエラーになる
355: 弟子 2020/05/14(木)21:24 ID:1K896jy3(2/7) AAS
まったくわからんのだが
>>349のソースには
m_goPais がないんだけど、>>354で突如でてきて、に
m_goPaisに何かするとすでに ってさ
もうね、全部情報だしなよ
そんな自分しか知らない情報でここに書かれても、何したいの?
混乱させたんだね くらいしか思えないわ
プログラム作るならも少し仕様を決めて作ろ
356: 2020/05/14(木)21:27 ID:1K896jy3(3/7) AAS
くまじょさんは、自分はおっちょこちょいでよくからんけど、Unityで偽情報流したいって自己紹介してる感じかな?
もちっと簡潔にしてシンプルなコードで試せばいいと思うけど
357(1): 弟子 2020/05/14(木)21:31 ID:1K896jy3(4/7) AAS
あ、そうそう帝王さんってのもボタンのBool値が欲しいってさ
何のBool?
ActiveなのかEnableなのぁ、具体的に書いてねって言っても
Wait処理とか出てきたし
え、最初からそんなの書けよって事
なんで後出しじゃんけんするかなぁ
パラメータも3,4欲しいって
え?プログラム作るのにパラメータの数決まってないの?
それでどうやってIF作るのさ?
もちっと仕様ちゃんと考えよう
358: 弟子 2020/05/14(木)21:46 ID:1K896jy3(5/7) AAS
まぁここ見てる人たちは
参考にしないでね
359(1): くまじょ 2020/05/14(木)22:21 ID:6hw1sJEU(8/12) AAS
余計な部分はかえって分かりにくくしてしまうので忘れてください
paiはスクリプトコンポーネント
paiには"pai"というタグがついている
Destroy(pai.gameObject);
goPais = GameObject.FindGameObjectsWithTag("Pai");
でGameObject.FindGameObjectsWithTagが
pai.gameObjectを見つけてしまう
原因を調べてたら
どうやらこう動作をするものなので
回避する必要がある
ということがわかったという話
360: 2020/05/14(木)22:25 ID:H9Bm8TRn(1) AAS
>>357
も、申し訳ございません。
質問というよりは
単にボタンで苦労した話をしたかっただけなのです
361(1): 弟子 2020/05/14(木)22:37 ID:1K896jy3(6/7) AAS
>>359
すまんスクリプトコンポーネント自体にタグの設定など無いと思う
タグはゲームオブジェクトに付けられるものだと思うのだが
とうやって浸けたのかそのssとか方法を記載してもらえますか?
試して見たいのですよ
明日になるけど
上下前次1-新書関写板覧索設栞歴
あと 55 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.007s