[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
323: 2020/04/30(木)00:32 ID:hTGJdOAW(1) AAS
テストプレイ中(UNITYで再生中)に
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?)
324: 2020/04/30(木)03:18 ID:uP6BsH0v(1/3) AAS
はい、気のせいです。
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる
325: 2020/04/30(木)03:33 ID:yZzY0I2t(1/2) AAS
>>308
Undo.RecordObjectは上手く使えなかったのですが、
それの関連で出てきたプロパティ操作とやらを使ったらできました!
ありがとうございました
326
(1): 2020/04/30(木)05:33 ID:rTPsa1+b(1/3) AAS
ユニットをクリックすると移動できる範囲の色を変えるという実装を作ろうとしています。

UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。

ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。
327: 2020/04/30(木)05:55 ID:rTPsa1+b(2/3) AAS
>>326
自己解決しました。

元のオブジェクトの下に子オブジェクトを追加して、
この子オブジェクトをON/OFFすればできました。
328: 2020/04/30(木)06:48 ID:XHyCB/e1(1) AAS
UnityでFE風のSRPGを作ってる人のブログを前に見たな
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた
329
(3): 2020/04/30(木)11:41 ID:V6Pk2JwW(1/3) AAS
画像リンク


ボタンを押すと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
(1): 2020/04/30(木)12:26 ID:uP6BsH0v(2/3) AAS
どう動かなくなるのか…
331: 329 2020/04/30(木)12:40 ID:V6Pk2JwW(2/3) AAS
>>330
ボタンを押しても何も反応しなくなりました。
publicで外部から親を参照していた時はうまく動いていたのですが、
Findで探すようにしたらボタンが反応しなくなった感じです。
332
(1): 2020/04/30(木)12:44 ID:fCNBU+9B(1) AAS
>>329
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。

Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい

void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
}
333: 2020/04/30(木)12:44 ID:yZzY0I2t(2/2) AAS
簡略化してるのかと思ってたけど
もしかしてStart()とかの関数の外でGetComponentしてる?
334: 329 2020/04/30(木)13:01 ID:V6Pk2JwW(3/3) AAS
>>332 333
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。

publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。
335: ダーク王鍬大使 ◆SoVpkB15jY 2020/04/30(木)17:20 ID:sYkR1Hoa(1) AAS
僕もガチ初心者の頃にメソッドの外でGetComponentしようとしたことがありまひた(^^
誰もが通る道なのでふね(^^

ボッキング!(^^
336: 2020/04/30(木)17:46 ID:Svx3VR2I(1/2) AAS
昨日screenspace.cameraでのUGUIのドラッグについて質問した者ですが、やっと画面に表示される様になったもののクリックした位置のかなり左にオブジェクトがワープしてしまう様になりました。

もうお手上げです\(^o^)/
337: 2020/04/30(木)20:54 ID:dWqwrf+A(1/2) AAS
原因が同じかどうかはともかく

自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな
338: 2020/04/30(木)20:54 ID:uP6BsH0v(3/3) AAS
クリックした時の座標データを表示して、見る。
339
(1): 2020/04/30(木)21:02 ID:OfoKVMka(1) AAS
質問時にエラーが出てる時は必ず言って欲しいわ
340: 2020/04/30(木)21:28 ID:Svx3VR2I(2/2) AAS
ワープ現象は手札置き場パネルのホリゾンタルレイアウトがカードオブジェクトのアンカー?を左上にセットしていたのが原因っぽいです。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。

screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。

同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!

>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。
341: 2020/04/30(木)21:28 ID:dWqwrf+A(2/2) AAS
そういえば自分の時はコンソールに何かエラーメッセージが出てたな
342: 2020/04/30(木)21:34 ID:rTPsa1+b(3/3) AAS
ここで質問していろいろ弄ってわかったことのメモを置いておきます。

【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。

?uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。

?SpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)

実行時には?と?は重なって表示されます。
まだよくわかっていませんが、?の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
?と?はずれるかもしれず、その辺りのケアも必要になるかもしれません。
343: 2020/05/01(金)00:44 ID:YDQCTUGy(1/2) AAS
UGUIではUIを作りましょうって事なんだろうけど、レイヤーを指定して最前面以外に描画できるだけで初心者にはありがたいのになぁ。
344
(3): 2020/05/01(金)20:23 ID:HXkpQ0jK(1) AAS
おすすめのアセット教えてください(´・ω・`)
345: 2020/05/01(金)20:37 ID:KuaWU/nQ(1) AAS
何が欲しいねん2Dキャラ欲しいのにSE集いらないやろ
346
(1): 2020/05/01(金)22:22 ID:YDQCTUGy(2/2) AAS
>>344
セール終わったばっかりじゃん!
初参戦でdotweenとeasysaveとSE集3個買いました。
347: 2020/05/02(土)00:55 ID:d/s8ZDya(1) AAS
宴を買ったけど今すぐ使いたいのはダイヤローグシステムの方だった
次のセールでも半額になっていますように
348: 2020/05/02(土)01:17 ID:z//Ej8ZX(1) AAS
>>344
このブログでも見たら?
外部リンク:www.asset-sale.net

都市ジェネレーターくっそ楽しそう
349
(1): 2020/05/02(土)04:48 ID:qMjLJQ/3(1/2) AAS
>>346
DOTweenは無料のようですが
DOTween Proを買ったのでしょうか?
セールが終わったばかりとは残念なことです。
350: 2020/05/02(土)04:58 ID:qMjLJQ/3(2/2) AAS
>>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(無料):オブジェクト&#8596;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 ID:jg5HGTGy(1) AAS
ずっと解決できない不具合があり教えて頂きたいです。
画像リンク

ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。

RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
352
(2): 2020/05/02(土)23:54 ID:liKQCy1q(1) AAS
GameObject.Findは非アクティブオブジェを検索できないから、

//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);

にすればいいんじゃないかな
1-
あと 650 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.013s