【ゲームエンジン】Unity初心者質問スレBuild4

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
2020/03/29(日) 19:35:12.24ID:mirhKW7D
ゲームエンジン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
2020/05/02(土) 01:17:02.21ID:z//Ej8ZX
>>344
このブログでも見たら?
http://www.asset-sale.net/

都市ジェネレーターくっそ楽しそう
349名前は開発中のものです。
垢版 |
2020/05/02(土) 04:48:49.83ID:qMjLJQ/3
>>346
DOTweenは無料のようですが
DOTween Proを買ったのでしょうか?
セールが終わったばかりとは残念なことです。
350名前は開発中のものです。
垢版 |
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):アイコンやボタンのデザインアセット
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);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
2020/05/02(土) 23:54:46.74ID:liKQCy1q
GameObject.Findは非アクティブオブジェを検索できないから、

//親オブジェから子を探す
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);
でいけると思います
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にしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。
2020/05/03(日) 01:05:15.72ID:mGAguN+2
>>354
Start関数は1回目にインスタンス化したときにしか呼ばれないから、アクティブ化したとき毎回呼びたいなら
OnEnable関数に入れると解決すると思います
2020/05/03(日) 01:20:39.40ID:3PYqNA60
>>355
どうもありがとうございます!
ずっと行き詰っていたので質問してよかったです!
2020/05/04(月) 11:48:55.60ID:J4ms5P/o
ヒエラルキー
Canvas
image

もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら

処理

それ以外

処理


というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。
2020/05/04(月) 11:59:50.15ID:FDckzKji
子の取得
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。
2020/05/04(月) 16:56:20.55ID:4sVluEfA
なんでもかんでも、public にするのは良くないと
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?

そうであるとすれば、個人制作であれば
それほど気にしなくていいですか?
360くまじょ
垢版 |
2020/05/04(月) 17:27:45.79ID:AIvgNpPa
>>359
いいよ
でも何でもかんでもpublic メンバ変数は良くないと知ったうえで
361357
垢版 |
2020/05/04(月) 20:12:39.90ID:J4ms5P/o
>>358
どうもありがとうございます。
別スクリプトの変数の値を取得することが出来ました。

もし、Canvasの子のimageに付いているimageScriptの中にあるbool型の変数 isBool が false だったら

GameObject _image; //スクリプトが付けているオブジェimageを変数に入れる
BigModeScript _imageScript; //imageのコンポーネントimageScriptを変数に入れる

_image = GameObject.Find("image");
_imageScript = _BigModeScript.GetComponent<imageScript>();
bool _isBool = _imageScript.isBool;
if (!_isBool)
{
      処理
}
    else
{
   処理
}

ifの()の中に全部入れるようにするのかと思っていましたがそうではなかったです。
362名前は開発中のものです。
垢版 |
2020/05/05(火) 13:51:03.05ID:9nXMWD0/
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1377.jpg
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1378.jpg

初歩的な質問ですみません。カメラの撮影範囲を表示している@の線に背景が触れると、Aのように表示されます。
Aのようにならず正常に表示するにはどうすればよいのでしょうか。
分かる方がいましたら回答お願いします。
2020/05/05(火) 15:36:56.90ID:9Qg9BbaI
>>362
その線は、カメラに表示させる範囲をあらわしてるんよ。

カメラに映る範囲の距離を伸ばせばいいだけだから、
カメラのインスペクタの"Clipping Planes"のFarの値を増やせばいいよ。
2020/05/05(火) 15:56:09.82ID:M7CVA2SC
手前だからNearだな
365名前は開発中のものです。
垢版 |
2020/05/05(火) 16:28:57.74ID:9nXMWD0/
ありがとうございました!これで作業が進みます!
2020/05/05(火) 20:21:25.72ID:yqNxCZ2T
ユニットが選択されたらステータスに顔画像を表示する部分を作っています。

1.ユニットの子オブジェクトのImageに画像をロード(ユニット生成時に一度だけ)
2.ユニットが選択されたとき、ステータスUIのImageを選択ユニットの子オブジェクトImageに置換

というやり方で実装しました。

ここでゲーム実行中に1の画像ファイルを別なものに置き換えたところ、
2のステータスUIの画像までリアルタイムで(正確にはUnityをActive windowにしたときに)変わりました。

ユニットが選択されるたびにファイルアクセスが発生しないように上記のような実装にしたのですが
ステップ1で予め画像をロードしておく処理は無駄なんでしょうか?
2020/05/05(火) 21:14:52.35ID:GfNu4m3E
質問失礼いたします。
カメラにアニメーションキーを打って再生しているのですが、
1フレーム間の移動を大きくすると、再生時に正常に再生されない(キー前後で補完のようなものがはいる)のですが、原因や対処法などございますでしょうか。
宜しくお願い致します。
2020/05/05(火) 21:20:10.87ID:ENVyAp/N
マルチっすか……
2020/05/06(水) 06:05:36.53ID:N50fTHgp
マルチだね
2020/05/06(水) 17:25:18.14ID:tuJN3eof
Unity AIPの詳しい解説が掲載されている教本があれば教えてください
2020/05/06(水) 17:35:24.14ID:+0FT+A2D
そんな物は無い
2020/05/06(水) 18:46:01.40ID:oYW9vXG2
垢付きさんはUnityの教本一冊も読んでないでしょ〜
2020/05/06(水) 20:30:23.93ID:7QaDuGGA
カメラをズームしてもぼやけないよう予め大きめのpng画像でPlayerキャラを用意し、Scale縮小して表示したいと思います。この場合、

・一番親のオブジェクトでまとめて縮小する、
・キャラを描画するレンダラーコンポーネントを付けた子オブジェクトを縮小する

どちらのパターンが無難でしょうか?
親オブジェクトにはRigidbody2Dと接地用のコライダー、メイン処理用のスクリプトが付いており、
子はレンダラー用、レンダラーに追従する当たり判定用などのオブジェクトが3つぐらいあります。

どちらも今のところは大丈夫なんですが、後々物理演算のかみ合わせとかなにか問題出てくる要素あるのではと決めかねています。
なんかふわっと質問で申し訳ないですが、アドバイスください。
2020/05/06(水) 20:42:07.26ID:DpeqSzMx
>>373
後々がどういう仕様になるか、ご本人がわからなければ第三者はもっとわかりません。未来の話は置いといて作れば良いかと。
あと、気になったのは大きい画像とありますが、2dでドット絵なら、主スケールの時に1対1ドットにすべきかと思います。縮小すると線が消えますので。
2020/05/06(水) 23:57:46.66ID:7QaDuGGA
>>374
ありがとうございます。あまり考えても仕方がないとは思うのですが、
オブジェクトの物理演算の動きを阻害させずにグラフィックだけ動かす必要が出て、オブジェクトのプレハブの親子関係全修正になってしまったので、
後々融通の効くオブジェクト構造とはどういうものなのだろうかと気になっています。

例えば炎がキャラの位置に追随しながら周囲を回転する魔法を実装したい、となった際にはキャラの子オブジェクトとしてインスタンスするのが良さそうですが、
親のルートオブジェクトがキャラによってまちまちの縮小だと汎用的に実装できるのだろうか…とかですかね。

主スケールのときに1対1ドットとは、基準となるカメラのscaleで原寸画像で表示できるサイズにすべき、ということでしょうか?
キャラ画像はドット絵のスプライトアニメではなくアニメ塗りスプライトのボーンアニメを実装しているのですが、カメラを引いた時のガタつきが気になります
2020/05/07(木) 00:20:31.75ID:5v92ATly
>>373
一番無難なのは、画像アセットの「ユニットごとのピクセル数」を設定する方法かな。
2020/05/07(木) 01:19:14.26ID:kT1fPxaV
>>376
SpriteModeのPixel Per Unit の項目ですかね。うろ覚えになって以降意識の外にあったので調べ直してみます。
2020/05/07(木) 11:15:43.55ID:dcpSlS2D
>>375
ドット絵と思い込んでましたので、そうでない、拡大にも耐えられる絵なら、主スケールは忘れてください。失礼しました。
2020/05/07(木) 16:07:30.44ID:VHUNtNMf
マルチってどういう意味ですか?
380くまじょ
垢版 |
2020/05/07(木) 18:45:36.64ID:x1GQ3H70
>>379
複数

掲示板などでは嫌われる行為
回答を速く得るために多数の掲示板に書き込む
そういう人はどれかひとつの掲示板に回答があれば他の掲示板住民のことは無視するというかどこに書き込んだか覚えてもいない
自己解決すればすべての回答を放置する確率が高い
最初に説明をすれば許されることがある
急いでたからと言うと炎上する
2020/05/08(金) 10:10:31.84ID:UflBmPCI
>>349
質問させて下さい。
ターン制バトルのRPGなどで敵ABCが居たとして、
それぞれの攻撃の処理にモーションを含めて1秒ずつかかるとします。

Aの攻撃が終わったらBの攻撃〜とする時にコルーチンなどで1秒毎に行動させる方法が思い浮かびます。

しかし、ゲームを作っているうちにAのモーションは2秒かかるという状況もでてくると思います。

その場合はAの行動が終わった事をフラグにして、アップデート関数でif(A行動済み==true)という風に作るのでしょうか?
それとも、Aの行動が終わった時に呼び出す〜みたいな関数があるのでしょうか?

アップデートを極力使わずにプログラミングしているのですが、アクションゲームなどは常にアップデート多様していると思うのであまり気にしないで使っていいのでしょうか?

ご指導頂ければと思います。
よろしくお願い致します。
2020/05/08(金) 10:11:26.30ID:UflBmPCI
すみません、予測変換で謎のアンカーがついてしまいました・・・。
2020/05/08(金) 10:28:24.73ID:vnSLXTuW
>>381
いろんな作り方があるので間違いじゃないです。
2020/05/08(金) 10:33:59.40ID:vnSLXTuW
>>381
敵ににスクリプトが付いていて、呼び出して行動させるなら、戻り値で対応するべきかと思います。
2020/05/08(金) 11:21:17.27ID:UflBmPCI
>>384
回答ありがとうございます!
引数の使い方を最近やっと覚えたばかりで戻り値というアイデアはありませんでした。
フラグの管理に便利そうですね!

質問の仕方が冗長だったのですが、
メソッドの終了をトリガーにメソッドをスタートさせる事は出来るか(またそれは簡単か)
ターン制のゲームの処理をアップデートで管理するのは普通の事か(RPGに限らずシュミレーション等で敵の移動が完了したら〜など)

が一番知りたいです。
もしご存知でしたら教えて頂けると幸いです。
よろしくお願い致します。
2020/05/08(金) 11:45:16.81ID:vnSLXTuW
私なら、ターン制ならupdateは使わない方向で作るかな。全て一元管理が基本(私見)だし。
2020/05/08(金) 13:25:28.64ID:UflBmPCI
>>386
ありがとうございます!参考にさせて頂きます。

プログラミングの基礎的な事はだんだん出来るようになってきたのですが、ゲーム作りは計算結果を瞬時に表示すれば良いわけじゃないので難しいですね。
2020/05/08(金) 14:20:51.68ID:vnSLXTuW
>>387
敵キャラ毎のローカルでupdateを使うこともあります。例えば敵キャラの待機中のアニメのコントロールなどメインに関係のない動作処理で、もちろんメインからの指示があればキャンセルして動作する仕様です。
switch などで条件分け。
2020/05/08(金) 15:36:45.77ID:9WCysDW4
横から失礼します
>>388
普通のリアルタイムゲームで
敵が例えばしばらく右に動くって場合
毎フレームごとにメインクラスのアップデートから敵クラスの関数(右に動く)を呼び出すカンジで
組むということでしょうか?
メインクラスで基本すべてのオブジェクトを管理するみたいなことでしょうか?
2020/05/08(金) 15:46:34.55ID:9WCysDW4
>>戻り値で対応する
このテクニックおしえてほしいですm(_ _)m
2020/05/08(金) 16:53:54.16ID:J8P/XUJn
ButtonコンポーネントのOn Click() は
右下の + を何回も押せば複数設定できますが、
複数の On Click() を設定した場合、上から順番に実行されるのでしょうか?
それともランダムでどれかから実行されるのでしょうか?
392名前は開発中のものです。
垢版 |
2020/05/08(金) 18:03:02.80ID:iGwLiiUh
>>381
DOTweenであれば、
.OnCompleteがアニメーションが終わったら実行されるコールバックなので、
この中に続いて行いたい処理を書くのはどうでしょうか。
393名前は開発中のものです。
垢版 |
2020/05/08(金) 18:05:27.16ID:iGwLiiUh
>>391
試しに作ってみて呼び出し先でDebug.Logで適当な文字を出力すれば動作がわかると思います。
わかったらおしえてください。
2020/05/08(金) 18:09:07.52ID:9WCysDW4
>>392
DOTween聞いたことない言葉でわからないですがこれから
調べてみようと思います
レスありがとうございます!
395391
垢版 |
2020/05/08(金) 18:47:52.20ID:J8P/XUJn
>>393
どうもありがとうございます。
On Click() を10個設定して実行したら必ず上から順番に実行されました。
ありがとうございます。
2020/05/08(金) 23:56:11.97ID:94Epi6HC
PUN2を使用して1つのオブジェクトを複数人で同時に操作することは可能ですか?
所有権が絡むので無理なのかな…
ターン制のゲームを作ろうとしてまして、自分のターンが終了したら「完了」ボタンを押して
次のプレイヤーに所有権を譲渡という処理が現実的ですか?
このとき完了ボタンの所有権も合わせて譲渡なのかな?
考えはあってもコードがスラスラ書けないので
参考になるサイトなどあれば教えてください。
2020/05/09(土) 15:07:54.32ID:WHLIySq3
関数が実行される回数を数えて5の倍数の時に特別な処理を行うようにしたいのですが、
どのようにすればいいのか教えてください。
2020/05/09(土) 15:15:21.93ID:sZmYha8S
% 演算子 でぐぐりなされ。
2020/05/09(土) 15:16:43.83ID:7KZIr97V
世界のナベアツに教わるべき
2020/05/09(土) 15:52:02.70ID:TAHw/Xve
実際例題でナベアツのとこもあるしな
2020/05/09(土) 15:58:55.66ID:jO2sL26f
3の倍数のときだけアホになる処理を行います
402397
垢版 |
2020/05/09(土) 16:00:01.83ID:WHLIySq3
解決できました。
ありがとうございます!
403名前は開発中のものです。
垢版 |
2020/05/09(土) 18:04:57.52ID:+uK6xcBW
unityでAudioClip使って音を鳴らしていたのですが
何かの拍子に音がならなくなってしまいました
ゲームビューのMute Audioはオフで、オーディオリスナーもいて、オーディオソースもミュートになっていません
最初はなっていたのですが気がついたらならなくなっていました
なんでもいいのでこれ確認してみて?っていうのありませんか

思い当たる節としては、ビルドセッティングをPCからwebglに変更したことなのですが何か関係ありますかね?
2020/05/09(土) 18:08:45.94ID:+uK6xcBW
>>403
新しいオブジェクトに新しくオーディオソースつけて適当な音つけてatdiosouce.Play()しても鳴りませんでした
isPlayingを確認するとtrueにはなってます
2020/05/09(土) 18:14:55.48ID:TAHw/Xve
とりあえずunityエディタ再起動
2020/05/09(土) 18:16:39.73ID:+uK6xcBW
>>405
エディタ再起動、本体再起動してみましたがダメでした
音が鳴る他のプロジェクト(書籍のおまけプロジェクト)を開いたら音が鳴りました

あとビルドセッティングをpcに戻してみたんですがやはり鳴らないままでした
2020/05/09(土) 18:25:02.71ID:lLhmyLSh
Androidのビルドのプレイヤーが表示されない問題は解決した
管理者権限でPCを使えばいい話だった

でもビルドエラーが19個出て流石に心が折れた
最初は20個以上出てたけど19個にまで減らせた
でももう流石に疲れた
別のことやりながら気長にやるわ
2020/05/09(土) 19:03:45.28ID:99hjRqDl
>>403
一つ気がついたのは、ゲームビューのstatsを押すと、
「Audio Level ー∞dB」になっていました
音が鳴る同一ソース同一音源別プロジェクトだと-33dBと表示されていました
2020/05/09(土) 19:08:16.58ID:99hjRqDl
>>408
解決しました
project setting>disable unity Audioにチェックが入っていました
こんな設定触った覚えはないのですが・・・
お騒がせしました
2020/05/09(土) 20:45:08.73ID:lLhmyLSh
やっちまった
今のUnityってAndroidStudioもJDKもいらんのか
古い情報を参考にしてAndroidStudioとJDK入れてしまってた
慣れないマックだからどこに何が入ってるのか全くわからん
ビルドエラーの原因がこれならお手上げやしバックアップデータからリカバリーするわ
411弟子
垢版 |
2020/05/10(日) 18:24:49.39ID:y36BaEQz
>>396
Pun2のサンプル作成したので適当にどうぞ
ネットワークは初心者向けではないと思うので、これについてのフォローは別スレ「Unityで何かゲームを作りたいんだがね」
https://mevius.5ch.net/test/read.cgi/gamedev/1452084824/
でお願いします
作りちょっと雑ですが操作権を渡して移動できるようにしてあります
クリックでビームがでるけど、そこは未対応、2,3のWeb見たけど結局公式のチュートリアルとリファレンスにらめっこでした
https://imgur.com/TFScO0P
http://whitecats.dip.jp/up/download/1589102312/attach/1589102312.zip
pass:1234
2020/05/10(日) 20:39:09.38ID:sfKyGpt+
弟子くんやるやん
2020/05/10(日) 21:56:50.60ID:A19AU1kw
>>411
まず感謝もうしあげます。まだ中身見れてませんが帰ったらすぐ確認します!
unity、プログラミング初めて2ヶ月でググりながらここまできて躓いたので手を差し伸べられたのが本当に嬉しいです
2020/05/10(日) 22:26:56.04ID:vAqMkWjp
2か月でオンラインゲー作ろうとかすごいですね
自分も初めて2か月くらいだけどUIのボタンのクリック処理やっと理解したレベル
2020/05/10(日) 22:57:15.51ID:A19AU1kw
>>414
やっぱやりたいことがあると必死になりますね。
VBAとかは仕事でたまにさわってたのでプログラミングってこんな感じ?ってのはありますが
クラス?インスタンス?グローバル変数っておいしいの?ですよ
416名前は開発中のものです。
垢版 |
2020/05/11(月) 13:22:37.63ID:acPVtW5H
UnityでiOS向けのゲームを開発しているのですが、アプリを公開しようと申請をだしたところPUSH通知の設定があるけど証明書が登録されてないよメールが届きました。
アプリの中でPUSH通知を使ってないのですが、どうしたらこのアラートメールが来ないようにできますか?
2020/05/11(月) 20:38:10.75ID:l1ctVh1B
リカバリしてUnity入れ直してもビルドエラーが一つも減らない
先にiOS版を出そうかと思ったけどこのスレ見て目眩がした
あかん…本格的に心が折れてきた

ソースコードと過去絵使いまわして同人バカエロゲでも作るのが精神衛生上一番良さげなのが更に心折れる
418名前は開発中のものです。
垢版 |
2020/05/11(月) 21:17:02.95ID:SoudElxg
フリーのノベルゲームを作りたいのですが、他人が作ったMMDキャラを使う場合、コレは個人利用になりますか?

また、unityでお薦めの参考書があれば教えて下さい
2020/05/11(月) 21:33:49.72ID:Zx4BJXIc
>>418
真面目な話すると
個人利用に当たるかどうかも自分でわからない奴は手を出さないほうが身のため
420名前は開発中のものです。
垢版 |
2020/05/11(月) 21:54:33.24ID:SoudElxg
>>419
分かりました。
ありがとうございます。
421くまじょ
垢版 |
2020/05/12(火) 14:45:33.69ID:BsMD4e4s
unityで2dで開発してます
マウスボタンが押されたかの方法をネットで調べて
Update()でif (Input.GetMouseButton(0))
によりマウスボタンが押されたか判定が実現できました

マウスボタンを押していないときも含めてマウスの座標も得られました

しかし
ドロップダウンのリストが現れているときも
Update()でボタンダウンとかできてしまうので困っています

どうすれば
ドロップダウンのリストが現れているとき
Update()でのマウス位置やボタンダウンに関する処理を
させないようにできるのでしょうか?

自分なりに調べたり試したところUpdate()では何もしないのがいいのかな
ドロップダウンのリストが現れているときというのがわからないから
ドロップダウンのリストの生成やアクティブやZオーダーもこちらで制御できないし
キャンバス2つ用意してEventSystemでなんとかするのかな
2020/05/12(火) 15:21:02.49ID:tbAYOBBo
>>421
まず何がしたいのかも何が言いたいのかもわからないです。
現在の自分の状況をまったく知らない人が見てもわかる質問しましょ?
423423
垢版 |
2020/05/12(火) 15:39:06.10ID:oz8b1+GC
他のオブジェにアタッチしたスクリプトの変数をボタンを押して変更したいです。
Boolean(空オブジェ)にアタッチしているBoolean.cs の中の変数 bool BOOL を ボタンを押して、false から true にしたいです。

ヒエラルキーにあるオブジェ
Canvas
  Button
Boolean(空のオブジェにBoolean.csアタッチ)
424423
垢版 |
2020/05/12(火) 15:39:30.49ID:oz8b1+GC
//■■■Booleanに付けたスクリプト■■
using UnityEngine;
public class Boolean : MonoBehaviour
{
public bool BOOL = false;

void Update()
{Debug.Log(BOOL);}
}

//■■■Buttonのクリックイベント■■
using UnityEngine;

public class Button : MonoBehaviour
{
bool BOOL;
public void Click()//ボタンのクリックイベント
{
BOOL = GameObject.Find("Boolean").GetComponent<Boolean>().BOOL;

if (BOOL == false)
{BOOL = true;}

else
{BOOL = false;}
}
}

ボタンを押してもDebug.Log(BOOL) が true にならないです。
Booleanの中のboolean型の変数 を true にしたいのでどうか教えてください。
2020/05/12(火) 16:08:24.28ID:tbAYOBBo
>>424
bool BOOLの下に
Boolean booleanを宣言して
booleanにゲットコンポーネントでBooleanをいれるか、シリアライズフィールドでオブジェクトBooleanをアタッチします

BOOL = trueって、なってるところを
boolean.BOOL = true

に変えればいいと思います
426名前は開発中のものです。
垢版 |
2020/05/12(火) 16:18:09.98ID:Ys8/n9tg
下記のスクリプトのようなオブジェクトが滑らかに移動する動作をUIのボタンを押したら移動するようにしたいのですがどうすればいいでしょうか?

public class Move : MonoBehaviour
{

//スタートとゴールの設定
public Transform StartPosition;
public Transform GoalPosition;

// スピードの設定
public float speed = 1.0f;

//2点間の距離を入れる
private float distance_two;

void Start()
{
//二点間の距離を代入
distance_two = Vector3.Distance(StartPosition.position, GoalPosition.position);
}

void Update()
{
// 現在の位置
float present_Location = (Time.time * speed) / distance_two;
// オブジェクトの移動
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
}
}
2020/05/12(火) 16:22:55.47ID:oz8b1+GC
>>425
ご親切な回答を有難うございます!
おかげ様で出来ました!
428名前は開発中のものです。
垢版 |
2020/05/12(火) 16:47:20.82ID:1M8HduiR
IT掲示板群 ttp://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
2020/05/12(火) 18:57:46.63ID:oz8b1+GC
void OnEnable()
{
GameObject _button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button1.gameObject.SetActive(true);
GameObject _button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
_button2.gameObject.SetActive(false);
}
↑このようなコードをスタート関数を用いる方法で書き直しました↓

GameObject _button1;
GameObject _button2;

void Start()
{
_button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
}


void OnEnable()
{
_button1.gameObject.SetActive(true);
_button2.gameObject.SetActive(false);
}


そうしたら_button1.gameObject.SetActive(true);の行の所で
NullReferenceException: Object reference not set to an instance of an object というエラーがでました。
どのオブジェクトにも参照を持たない参照変数にアクセスしようとするエラーらしいのですが、一応動作はしている見たいで、参照もできている感じですが無視していいのでしょうか。
スタート関数を用いないほうがいいのでしょうか。
430名前は開発中のものです。
垢版 |
2020/05/12(火) 19:18:02.79ID:FcNJ6qJL
>>429
NullReferenceExceptionが出るということは、_button1が取得できてないんじゃないでしょうか。
Debug.Log(_button1)で中身が出力されますか?

それと、枝葉の話ですがOnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
431名前は開発中のものです。
垢版 |
2020/05/12(火) 19:24:02.91ID:FcNJ6qJL
>>421
bool IsPressed = false;

if (Input.GetMouseButton(0) && IsPressed==false) {
IsPressed = true;
・・・
}

というふうにするのはどうでしょうか。
ドロップダウンリストを消したタイミングで
IsPressed = false;
にしてやればいいと思います。
432くまじょ
垢版 |
2020/05/12(火) 19:39:21.53ID:BsMD4e4s
>>421
>>422

http://kmajo.starfree.jp/images/20200512/qq1.png
Update()でif (Input.GetMouseButton(0))で
インスタンス化することで描画とする

http://kmajo.starfree.jp/images/20200512/qq2.png
ドロップダウンのリストでクリック

http://kmajo.starfree.jp/images/20200512/qq3.png
この意図しない描画を防ぎたい
433くまじょ
垢版 |
2020/05/12(火) 19:53:57.14ID:BsMD4e4s
>>432
IsPointerOverGameObjectで解決しました
434429
垢版 |
2020/05/12(火) 20:19:47.33ID:oz8b1+GC
>>430
どうも有難うございます。Debug.Logで調べてみたのですが
どうやらスタート関数よりOnEnable()関数の方が先に呼ばれているようです。
それでうまくいってなかったのだと思います。

OnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
↑了解いたしました。有難うございます。
2020/05/12(火) 21:00:38.94ID:9ZCShqmp
>>426
まず、滑らかに移動するルーチンをお作りなさい。
つぎに、
ボタンが押されたらある変数が0から1になるルーチンを作りなさい。こちらで押したら離しても1のままとなるように。
2020/05/12(火) 21:52:42.21ID:fJoHzdFR
>>426
public class Move : MonoBehaviour
{
//省略

private bool flag;
private float time;

//省略

void Update()
{
if(flag)
{
if(time > distance_two / speed)
{
time = distance_two / speed;
flag = false;
}
float present_Location = time * speed / distance_two;
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
time += Time.deltaTime;
}
}

//buttonで呼ぶ
public void MoveStart()
{
flag = true;
}
}
2020/05/13(水) 16:40:30.40ID:xzAoXAgE
初心者だから毎日の様に新しい知識が増えて、同じプロジェクト内でもスクリプトの記述ルールとかが変わっていきます。

好きにしろよって感じだと思いますが、皆さん書き直してますか?
まだまだクソコードだからキリが無いとも思いますが、コンポーネントの取得方法の書き方などが変わると目的の場所がわからなくなっていくので・・・。
438くまじょ
垢版 |
2020/05/13(水) 17:03:01.03ID:0shJujSR
初心者だから混乱するので作り直すの難しそう
2020/05/13(水) 17:10:35.78ID:xzAoXAgE
>>438
最初は何でもかんでもオブジェクトに貼り付けて全部インスペクターで管理しちゃってたのが段々スクリプト完結になっていったりとか。

前者はUnityの良さでもあるのでNGでは無い気もしますが、混在してるとなんだかモヤモヤしますね。
440名前は開発中のものです。
垢版 |
2020/05/13(水) 22:24:21.28ID:1JAlkaKy
記述ルールの変更ということで、

初めはステータスコンポーネントにキャラクターの能力値を記述していたのですが、
あの能力を使わせよう、この動きを行わせようとしているうちにどんどんメンバが増えていき
講読性も拡張性も大変悪いので、GetterSetter他パラメータ固有動作を一つずつクラス化し、
ステータスコンポーネントのDictionalyに随時格納しているところなのですが、

Dictionalyに格納したクラスは格納したまま変更可能でしたっけ?
出来なければクラス化したパラメータをメンバとしてステータスコンポーネントに並べるだけでなのですが、
そうなると果たしてこの方法が講読性、拡張性を改善した方法と言えるものなのか
そもそもこのやり方、いろいろな意味で正しいのかどうか

既に修正に多大な手間と時間を要している状態なわけですが、自分では判断がつかず悶々としています
皆様の所見としてはどうなのか、お答え願います
441名前は開発中のものです。
垢版 |
2020/05/14(木) 03:31:37.77ID:W8qTABLo
ue5が発表されてTwitterでトレンドまでなってるけどunity使ってる君たちはどんな気持ちなんだ?
2020/05/14(木) 04:00:26.24ID:lb4JODdi
いつだって俺たちはゴキゲンだぜ☆
2020/05/14(木) 07:22:13.02ID:WhwRP1nx
ゲームエンジの能力=自分が作れるゲームって勘違いしてるのかな?
2020/05/14(木) 07:26:39.41ID:lb4JODdi
煖エ聖子なんて無視しとけ
あいつUnityどころかRPGツクールも挫折するレベルだぞ
2020/05/14(木) 07:27:37.70ID:lb4JODdi
こんな煽りとID被ってすまんな
446名前は開発中のものです。
垢版 |
2020/05/14(木) 10:18:09.48ID:T/0wftDs
UE5の情報が公開されましたね。
アセットの扱い一つ見ても、”そうそう、それが欲しかったんだよ!”と叫びたくなるほど、
UE5陣営が本当に開発に寄り添っている事が良く分かる、素晴らしいデモだと思います。
UE4の時点でもう進化の限界だろうと思っていましたが、彼らは軽く想像を超えてきます。
unityのデモはいつも何が言いたいのか意味解らないですね。
https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5

4からの互換もかなり考慮されている模様。
unityは0.1でもバージョンが違うと動かない事が多いので、
この辺りの配慮も嬉しいですね。
447名前は開発中のものです。
垢版 |
2020/05/14(木) 10:32:32.93ID:SRg54q3H
2dゲーム作るとしてもue5の方がいいのか?
2020/05/14(木) 10:34:33.54ID:zpORb8AU
Unityすらまともに扱えない初心者が集まって教えて君するスレで何やってるんだこいつ
エンジン選ぶ立場の上級者がいるスレでやればぁ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。