18/03/27 23:09:10.08 b2tBgfx2.net
迷ったときは、シンプルが一番
109:名前は開発中のものです。
18/03/27 23:26:34.16 RXvI+utA.net
ステートマシンで統一するならアイテム毎にクラスを作るのが正道
インターフェースで配列にまとめて、ステートをインデックスにすればSwitchいらないから楽
110:名前は開発中のものです。
18/03/28 00:16:58.11 ano0dngW.net
>>107
シンプルって難しいですよねー
>>108
やっぱりクラスとインタフェースですか
URLリンク(www.dropbox.com)
とりあえずこんな感じで実装していこうかなと思ってるんですが
継承やらインターフェイスがいまいち理解できてないので使い方があってるかよくわからない
111:名前は開発中のものです。
18/03/28 00:32:56.27 ano0dngW.net
ただこの方法だと結局Switch分でどのコマンドのインスタンスを生成するか書かないといけない気がするから気持ち悪いしなんか効率が悪い気がしてるんですよね。
現状たたかうをクリックするとの文字列を取得してswitch文でコマンド決定してるから変わらないんですが
今後コマンドが増えるたびにそのswitch文がどんどん増えること考えると他にいい方法がないか考えないとなと思ってます。
112:名前は開発中のものです。
18/03/28 00:39:45.68 ano0dngW.net
手堅いのはDictionaryで最初にすべて初期化してしまって<string Comand>型で保持して取得する方法がいいかなと思ってるんですが、
たとえばリジェネみたいにターンをまたいで効果があるものについてはメンバ変数としてターン経過を持たせようかなと思っているので、
戦闘に参加するキャラクター分リストを作らないといけなくります。
それもどうなのかなっと思っているけど、正直メモリとかまったくわからないからとりあえずやってみようかなと思います。
113:名前は開発中のものです。
18/03/28 00:41:44.52 ano0dngW.net
とか書いていて思ったのですが状態変更系は付与コマンドと実行コマンドは別になるからあまり気にしなくてもいい気がしてきたのでもちょっと考えてみます。
日記になって申し訳ないですが独り言だと思ってください。
プログラム本当に難しいです
114:弟子
18/03/28 00:42:54.15 HPBo1FRD.net
100の論理より1の実践ですね
やってみないとわからん事あるし
とにかく進むのはいいことだと思う
リファクタリングは後でじっくりやればいいと思う
115:名前は開発中のものです。
18/03/28 00:49:04.95 ano0dngW.net
>>113
そうですねーとにかく書いていきます!
116:名前は開発中のものです。
18/03/28 17:18:25.88 XS6pPiWu.net
>>109
読みやすいコードだったからアレンジしてユニットテストを書いてみた
コマンドの追加とテストが楽なやり方
URLリンク(fast-uploader.com)
実際使うときの流れはこんな感じかな
【ヒール】の選択時に
type = CommandType.Healをキャッシュ
【対象】の選択時に
targets = new []{target}をキャッシュ
ToDo.Execute(this, targets, type);を発行
全キャラの入力が終わったら
ToDo.Update();をマネージャーで実行
117:名前は開発中のものです。
18/03/28 18:16:40.91 ano0dngW.net
>>115
読みやすいだなんてありがとうございます。
そんなにたいしたことしてないので読みやすいのかもです笑
がんばって読んで参考にさせてもらいます!
118:名前は開発中のものです。
18/03/28 18:20:01.57 ano0dngW.net
列挙型!!
こんなものが合ったんですねーまだまだ勉強不足です。
119:名前は開発中のものです。
18/03/28 18:22:46.68 ano0dngW.net
単体テストの作成方法もすごく勉強になります。
ほんとまだまだ覚えることがたくさんありますね。
120:名前は開発中のものです。
18/03/28 19:19:26.10 ano0dngW.net
foreachの中の(int)がなんなんだろって思ったけどすげえええええってなりました笑
やっぱり人のプログラム見るのって大切ですね。
121:名前は開発中のものです。
18/03/28 19:54:01.18 ano0dngW.net
とりあえず勉強した結果を
URLリンク(www.dropbox.com)
実は動的にインスタンスを生成したいって書き込んだ段階でリフレクションにはたどり着いたのですが
動作が遅いとのことだったのでちょっと見送ってたんですが最初の初期化の段階でリストにすべてのコマンドを
保持すれば使えそうですね
122:名前は開発中のものです。
18/03/29 00:18:42.02 19HQ1fRd.net
とりあえず目標の動きができるようになりました。後はログ出力です。
123:名前は開発中のものです。
18/03/29 00:25:47.36 19HQ1fRd.net
URLリンク(www.dropbox.com)
今日の成果です。
戦闘ログの出力方法考えてできるようになれば本体をUPできると思います。
124:名前は開発中のものです。
18/03/29 01:06:28.41 19HQ1fRd.net
とりあえずすべてのキャラがバラバラに動きつつもターンの概念をもって動けてるのでいろいろ実装できそうです
コマンドのクラス化は>>115さんのコードを参考にさせてもらいました!
本当にありがとうございました!
125:名前は開発中のものです。
18/03/29 09:49:13.79 0lth8Tps.net
このスレ、俺含めて3人しか生息してないのか
126:名前は開発中のものです。
18/03/29 12:29:54.59 A+svw9ZE.net
>>124
すいませんまだまだゲームとは程遠いですし
スクショ撮ってとか出来るレベルではないので見ても面白くないから人こないですよねー
127:弟子
18/03/29 14:54:23.97 YB
128:8wwnmH.net
129:名前は開発中のものです。
18/03/29 19:15:29.56 19HQ1fRd.net
そうですよねーSS取れるようになるまでがんばります!
130:名前は開発中のものです。
18/03/29 20:39:56.67 19HQ1fRd.net
URLリンク(www.dropbox.com)
なんとか戦闘のログもいい具合に実装できました。
かなりゲームらしくなってきたのではないでしょうか
ヒールもできるよ。
131:名前は開発中のものです。
18/03/29 20:45:47.47 19HQ1fRd.net
URLリンク(imgur.com)
とりあえずスクショとってみました
132:名前は開発中のものです。
18/03/29 20:46:27.98 19HQ1fRd.net
URLリンク(imgur.com)
URLリンク(imgur.com)
URLリンク(imgur.com)
これでいいのかな?
133:名前は開発中のものです。
18/03/29 20:47:15.82 19HQ1fRd.net
張り方がわからん笑
134:弟子
18/03/29 20:48:55.32 YB8wwnmH.net
>>129
は見れました!
>>130
は専ぶらに表示されないなぁ
なんでたろ
135:名前は開発中のものです。
18/03/29 20:49:40.93 19HQ1fRd.net
URLリンク(imepic.jp)
URLリンク(imepic.jp)
URLリンク(imepic.jp)
これでどうだ!
136:名前は開発中のものです。
18/03/29 20:50:07.75 19HQ1fRd.net
おっできた
137:名前は開発中のものです。
18/03/29 20:50:34.82 19HQ1fRd.net
>>132
いろいろ難しいですね笑
138:弟子
18/04/03 23:31:00.03 cZldOtbz.net
最近どうですかぁ?
139:名前は開発中のものです。
18/04/06 16:10:13.26 Xx5fn4lD.net
俺は愛国者だから安倍さんを支持するよ!
140:弟子
18/04/07 00:06:31.59 86W6J3Hs.net
もしかしてエタったかな?
141:名前は開発中のものです。
18/04/10 22:14:45.04 Z4+tQSPM.net
結膜炎になって死んでました
とりあえず目が治ったので勉強を進めていきますよ
142:弟子
18/04/10 22:31:01.27 8BJfaZs5.net
無理しないで、マイペースでいきまっしょい
143:名前は開発中のものです。
18/04/12 09:50:15.91 Ku7mZDs2.net
共同ツール 1
URLリンク(employment.en-japan.com)
URLリンク(trello.com)
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
URLリンク(www.kikakulabo.com)
共同ツール 2
URLリンク(www.google.com)
共同ツール 3
URLリンク(slack.com)
URLリンク(www.dropbox.com)
URLリンク(bitbucket.org)
URLリンク(ja.atlassian.com)
URLリンク(sketchapp.com)
URLリンク(photoshopvip.net)
144:名前は開発中のものです。
18/04/21 00:00:27.45 RNPVRl5B.net
URLリンク(twitter.com)
145:名前は開発中のものです。
20/03/11 17:07:07.87 /pIDaEQV.net
>>139 からもうすぐ2年
146:弟子
20/04/14 13:44:05 yAUiO24r.net
よしここ乗っ取るかなぁ
もう2年も空いてるようだし
147:名前は開発中のものです。
20/04/14 13:58:16 ozT+k9nk.net
で、何作るんです?
148:弟子
20/04/14 14:10:57 yAUiO24r.net
今作ってるのの進捗報告にする予定
あとはunity で分からんことあれば一緒に検証するよ
149:弟子
20/04/14 16:33:26.56 yAUiO24r.net
とりま、今はこんな感じ
URLリンク(imgur.com)
150:弟子
20/04/15 00:51:00.92 HsLVR/km.net
モチーフはハンターハンターの軍儀、ニコニコに軍儀作ってみたがあったけど、まったく分からんかった
なのでかなりシンプルにして重ねも二段までにした、駒は足軽、武士、乱破、弓、騎馬、竜騎士、軍師の7種類
「成り」は検討中、重なりを櫓と呼ぶんだが櫓になると動きの幅が増えるのでいらないかなと
動きはまずまず
問題はコンピュータ革の思考ルーチンだなぁ
将棋のみてもようわからん( ノД`)…
151:弟子
20/04/16 15:45:55 qf7tNPA4.net
メッセージ処理を実装中
URLリンク(i.gyazo.com)
スクロールを自作にて
URLリンク(imgur.com)
一応標準でScrollViewってのはあるけど微妙に使いにくいんだよね
なので、EventTriggerでBeginDragとDragを手動追加してみた
昨日半日悩んだが、やっと良き感じかな
152:名前は開発中のものです。
20/04/16 16:53:34 0xy8E69n.net
UIはAssetStoreから適当なフレームワーク落としてきたほうが早いし楽
uGUI生で使うのはやってらんない
153:弟子
20/04/16 22:29:04 qf7tNPA4.net
このスクロール自作部分だが、On Become 系を使うための工夫がされててこれにより楽にはみ出ないようにしたんだわ
これがて来たのも、この画面それぞれが独立してて、カメラが複数あるからなのだ
こういうのを試して実装するのこそ作成してる感あって楽しいね!
キット作るのも楽でいいが、バルサから型紙から自作する楽しさがいいね
完全オリジナルだしね
154:名前は開発中のものです。
20/04/17 02:26:03 or0YE9dC.net
カメラ複数は無駄に重くならない?
155:弟子
20/04/17 07:58:05.44 OFFMbn+N.net
今のところ重さは感じないです
スマホ実機に持っていっても全く大丈夫
因みにメインカメラが、全体盤面
上部メニューにサブカメラ
メッセージカメラ
持ち駒カメラ
駒選択でカメラ3つの計7ですね
当然ながらオーディオリスナーはメインのみ
156:弟子
20/04/17 08:08:09 OFFMbn+N.net
あ、持ち駒カメラは自駒と捕虜駒で2つだから形8だわ
それとシーン違うけど先行決めでも2つ使ってる
157:弟子
20/04/19 22:03:27.91 bBSLue1+.net
土日はリファクタリングでおわた~
うーんそろそろ真剣にコンピュータ側の思考回路に取り掛かるかなぁ
158:弟子
20/04/20 20:18:40.40 u2tEBgrm.net
積み残しは沢山あるが、とりあえずの相手の動きを
URLリンク(imgur.com)
まぁ同じ手を打つだけなので、先行では動かないんだがwww
まさに人工無能
これでもまだ櫓とか取得とかには手を付けてない
むずいお><
159:弟子
20/04/21 21:38:14 0NXgqO/n.net
コンピュータ側の単騎駒の取得実装
これで単騎だけならまぁ勝負できそうかな、あまり意味ないけど
このゲームはやはり櫓での動きだし
取った駒が味方になるターンまでどうしのぐか
そこらの思考が難しい
あ、まだ味方駒の刺し作ってない、明日はそれやるか
こうやって徐々に形になっていくなぁ
最初の頃から考えると凄いわオレ!
160:弟子
20/04/22 19:53:20 kYRnjPG5.net
URLリンク(i.gyazo.com)
リファクタリング続行
左がリファクタ前、右が後
かなり減った
これで結構シンプルになって分かりやすくなった
161:弟子
20/05/03 21:43:34 L/sk9kZG.net
うーむ
ちょっとゆにてぃ一週間やってた
明日からまた再開だ
162:弟子
20/05/03 23:39:58.01 L/sk9kZG.net
そいえばwebgl 初めてやったが日本語が表示されないのには焦った
てかビルドしてから分かる問題はやっかい
これは一応1week に説明あったから良かったけど
ちょっと謎の現象が出たのでチビりそうになった
明日まとめとしてツイッターにでも書いとこ
163:くまじょ
20/05/04 01:08:15 AIvgNpPa.net
そうなんだよ
ブラウザで実行させるのに
164:名前は開発中のものです。
20/05/10 22:13:00.99 A19AU1kw.net
初心者から誘導されてきました。
C#の調べ物してるのかUnityの調べ物してるのかで分からなくなる2ヶ月目新人です。
165:名前は開発中のものです。
20/05/10 22:19:28.20 A19AU1kw.net
簡単に自己紹介。2ヶ月前にunityとプログラミングに触り始めました。
きっかけは仲間内でやってた将棋の拡張ルールの遊びを転勤で離れ離れになったのでネット対戦したいなと思ったからです。
166:名前は開発中のものです。
20/05/10 22:23:05.83 lVBZEpB1.net
>>162
4ヶ月目だけどわかる
最初にメインクラスを作ったのに遠いクラスから誘導しきれなくて色んな所で処理が始まって必要なデータを何処が持ってるのかわからなくなる新人です
167:名前は開発中のものです。
20/05/10 22:24:14.29 lVBZEpB1.net
>>163
それSteamのテーブルトップシミュレーターで良くない?
168:名前は開発中のものです。
20/05/10 23:02:59 A19AU1kw.net
>>165
DIYの精神です!
169:166
20/05/10 23:45:41.13 A19AU1kw.net
PCから。基本的なことがわかってないんですが
void Start()
{
Player _player = photonView.Owner;
}
このPlyaerとplyaer と=の先の関係が未だによくわかりません。
Playerっていうクラスの _playerという変数にphotonViewって何かのOwnerという情報を持たせるということ?
170:名前は開発中のものです。
20/05/11 00:27:09.46 afpWqH1Q.net
photonViewの中には色んなものが入っていてOwnerは所有権持ってる人の情報がPlayerという型で入ってる
やってる事はこれと同じで初期化がまとめられてたり型や値の取り出し方が違うだけ
float takasa = 0;
takasa = transform.position.y;
IDE使ってたらその辺の情報はカーソル当てれば出てこないか?
そもそもStart()で動かすとかphoton自体の準備ができてなくてまともに動かないコードな気がするが
171:名前は開発中のものです。
20/05/11 00:41:06.58 W+d7HMEa.net
>>168
Playerの_playerにするのはなぜなんだぜ?
playerだけでもいいような。
IDEは赤い下線が出なきゃおkくらいにしか思ってませんでした。
172:名前は開発中のものです。
20/05/11 01:12:29.22 afpWqH1Q.net
>>169
そのIDEが設定してるコーディング規約でそうなってるんだろう
変数がローカルなのかプロパティなのかみたいなのが使ってるところを見ただけで判るし混同しにくくなるからバグも減る
動作としては名前なんてどうでもいいけど開発効率を考えるとちゃんとやったほうがいい
173:弟子
20/05/11 04:55:49.12 eNWV+got.net
アンダーバー付けてる変数名はその関数内だけとか、if ブロック内だけとかで使ってるだけとか、まぁ自分ルール
174:弟子
20/05/11 10:10:18.95 eNWV+got.net
>>167
このStart関数はこんな感じ
void Start()
{
Player _player = photonView.Owner;
textName.text = _player.NickName;
if (_player.IsMasterClient) gameObject.name = "Master";
else gameObject.name = "Client";
if (photonView.IsMine)
{
Color _color = srImage.color;
_color.a = 0;
srImage.color = _color;
}
}
_player はただ単にニックネームを取得する為だけのものなのでこの場で宣言してるだけ
本来なら変数は
Player _player ; で宣言して、使う場所で
_player = photonView.Owner; 代入なり参照なりする
メンドイから宣言と同時に値を入れてるってだけの話
で、このスクリプト「PlayerCntrl」はTriangleプレファブに付けてるのね
これはネットワーク繋がった後に生成されてるからphotonViewが使えるわけだ
175:弟子
20/05/11 10:12:23.86 eNWV+got.net
あぁIsMasterClientの判定にも使ってた
その後のIF文のColor宣言はそのブロック内だけしか使ってないでしょ
176:167
20/05/11 16:45:15 8BQlioiF.net
帰ったらじっくり読ませてもらいます。
177:弟子
20/05/11 18:35:53 eNWV+got.net
ぶっちゃけ
Player _player = photonView.Owner;
textName.text = _player.NickName;
if (_player.IsMasterClient) gameObject.name = "Master"; else gameObject.name = "Client";
この部分ってわざわざ変数にしなくても
photonView.Owner.NickNameであったり
photonView.Owner.IsMasterClientを直接使っても大丈夫だと思う
しかし次のは無理なんよ
if (photonView.IsMine)
{
Color _color = srImage.color;
_color.a = 0;
srImage.color = _color;
}
これをsrImage.color.a = 0は出来ない
何故かは聞かんといて(* ̄∇ ̄*)
178:167
20/05/16 14:05:21 FwgeP7VQ.net
ずっとエラーばかりで辛い。unity立ち上げるのも億劫。みんなどうやってこの気持ち乗り越えて来たんだろうか。
179:弟子
20/05/16 14:31:18 5yfA+B1Y.net
そりゃまぁエラーは一個一個潰していくしかないなぁ
自分はエラーなら調べて試してって出来るからまだましだけど
作ってるものを何回もテストしてると飽きてきたりだんだんつまらないと思ってきてモチベが下がる
そんなときはやる気出るまで他のことやる
仕事じゃないし無理してやることもね
180:弟子
20/05/16 19:27:21.84 5yfA+B1Y.net
>>176
ちなみにサンプルのは動きましたかな?
181:167
20/05/16 20:03:21 FwgeP7VQ.net
>>178
エラーはでませんが再生ボタン押しても三角出てこないですね
182:弟子
20/05/16 22:04:34 5yfA+B1Y.net
ジフ画像見ての通りで、2つクライアントを、起動しないと、でません
一つだ、確認するには
カラーの部分的はコメントしてください
183:弟子
20/05/16 22:07:16 5yfA+B1Y.net
何をやってるかというと、オンラインでそれぞれの機体を表示してるのだけど
本来なら自分と相手で2つ表示されるのよ
それを自分のは透明にすることで、あたかも1つのオブジェクトを操作しているように見せてるの
アルファ値をいじるとわかります
184:弟子
20/05/16 22:08:41 5yfA+B1Y.net
これの元は公式戦のチュートリアルですので
そちらをやるといいかな
ただチュートリアルは3デーなのでそこらは変えてね
185:167
20/05/17 23:56:13 J9VQt9RE.net
URLリンク(doc-api.photonengine.com)
ここにあるvoid PhotonView.TransferOwnershipを使って出来ないかと思ってたんです。
まずはじめに入室した順に1,2,3・・・とActorNumberをつけることにしました。
public override void OnJoinedRoom()
{
Room myroom = PhotonNetwork.CurrentRoom;
Photon.Realtime.Player player = PhotonNetwork.LocalPlayer;
photonView.TransferOwnership(player.ActorNumber + 1);
これで次に行けると思ったところで、このままだとActorNumber=2がログインするまで
処理を待たないと行けない事に気づいて、これは渡すボタンを作ってそこに貼り付ける
スクリプトなのか?と思ったところが今日まで。
初心者はスクリプトリファレンスに書かれてあることを試すためには
どういうコードを書いておかないと動かないかが分からない。
186:弟子
20/05/18 07:08:41.31 CvMgWlTy.net
オーナーシップについてはサンプル作る際には使い方がよくわからんかったので権利をRPC でやりとりしたんだけど
次のとこにやり方っぽいの書いてあったからちと試して見ます
URLリンク(doc.photonengine.com)
オンラインは特に初心者じゃなくても難しいんだけど、まずは紙にどういう処理の流れになるのかを書き出すと良いかと
187:弟子
20/05/18 13:21:14 CvMgWlTy.net
とりあえずOnwerShipを使った方法でサンプル作成してみました
URLリンク(whitecats.dip.jp)
パッケージなのでPhotonを取り込んだ後にインポートしてください
前回は2つobject作成したけど今回は一つのみで出来ました
かなり進歩した感じです
ただ、マニュアルに「OnOwnershipRequest()はシーン/ゲーム内で1回のみにする必要があります。」って書いてあるのが気にはなるんだけど
とりあえず何回クリックしても問題は今のところない感じかなぁ・・・
188:弟子
20/05/18 13:26:08 CvMgWlTy.net
動きはこんな感じ
URLリンク(imgur.com)
今回は一つのみなので、クライアント一つでも表示はされます
テストするには2つ立ち上げないと意味ないけど
ちなみに、片方が破棄されると残った方が自動でマスターになるようですね
これは便利
189:弟子
20/05/18 13:28:53 CvMgWlTy.net
考察すると
今回のonwer変更はphotonView.RequestOwnership();で行っているので、上述のは関係ないかもしれない
公式のサンプルから「public void OnOwnershipRequest(object[] viewAndPlayer)」を付けてはいるけど
この関数は呼ばれてないようなので、気にする必要ないかもしれませんね
190:弟子
20/05/18 22:52:55 CvMgWlTy.net
>>185
パスは前と同じで1234
191:名前は開発中のものです。
20/05/23 17:30:58 ELJggPk9.net
自分で完全オリジナルはきつい。
先人のファミコンやスーファミやPSとかのレトロゲーをコピ…ていうと聞こえ悪いから、オマージュしたような感じで作ったらいいよ。
できるだけ自分の要素とか入れたらいな。
GBAのエレベーターアクションなんてのもいま作り直しても面白いだろう。
あと、UnityのGit(Source Tree)でプロジェクト管理するとき、除外リストってこれでいいんかな?
URLリンク(i.imgur.com)
いろいろイグノアリスト見てくと全部微妙に異なってるから。
192:167
20/05/23 19:50:51 76mQTDTa.net
>>188
仕事が立て込んでまして、落着いたら見させていただきます、ありがとうございます。
193:弟子
20/05/24 10:48:35 zqUCyho6.net
>>189
git やらんからわからんけど、不具合出てないならそれでいいんでないか
>>190
この時期に忙しいのは良いことまずはリアル優先です
194:弟子
20/05/24 10:50:21 zqUCyho6.net
ただプログラムって少しでも離れると、あれなんだっけ?ってなるから
5分でも時間あれば、エディタ立ち上げてソース見るだけでもやっとくといいよ
195:名前は開発中のものです。
20/05/24 20:12:22.58 Xv6S3d+G.net
ユニティー厨が最近湧いてんのかw
あれではプログラムの腕は錆付くだろ
プログラムできんやつが使うツールだな
196:167
20/05/24 20:40:05.33 qz+4cn15.net
>>192
今自分で書いたコード見返してましたが、まさにそれでした。何をするためにコードを書いてる途中だったか分からなくなってる。
それで作ってもらったサンプルを見るためにpun2インポートしてappidも入れて、packageをインポートしてpc用にビルドしたんですが何も出てこない。
このOwnerLancherとDisCntrlとPlayCntrlを眺めれば分かってくるかもですかね!?
197:弟子
20/05/24 21:37:16.93 zqUCyho6.net
設定値でシーンが規定値になってるかもなので、インポートしたのの中にシーンあるのでそれを設定してね
とりまシーンクリックで見れると思います
198:弟子
20/05/24 21:39:08.18 zqUCyho6.net
>>193
最近じゃなくて、ずっとだよ
しかもここunity スレだから
ってunity スレきて何言ってんのぷぷ
199:167
20/05/27 20:03:09 +x6oE8qU.net
色々忘れてて焦る…もう一回チュートリアルとかやり直します。
200:弟子
20/05/27 21:46:30 nKxd1S4A.net
結構みんなその繰り返し
がんばるぞい!
201:167
20/05/28 19:58:36 yHa1d6dK.net
3歩戻って2歩進んだ感じ。
プログラミングって孤独との戦いな気がしてきた。もちろん分からないことを教えてほしいけどエラーが治らない!ってのを誰かと共有したい。
202:弟子
20/05/29 01:56:12.50 dtJQrirS.net
とりあえずエラーを、書くといいよ
203:名前は開発中のものです。
20/06/16 19:56:24 MlUmZOEQ.net
初心者スレ>>709のトリプルタップなんですが
ad
204:名前は開発中のものです。
20/06/16 19:59:06.03 MlUmZOEQ.net
初心者スレ>>709のトリプルタップなんですが
このコードを使って
2タップ3タップそれぞれの指示を出すには
どういう形になるのでしょうか
サンプル教えてください
お願いします
205:弟子
20/06/16 21:01:59.97 wovWHCaz.net
チェックカウントの関数で、スイッチ文で定義するといいかと思うよ
プリントされるでしょ
206:弟子
20/06/16 21:07:59.65 wovWHCaz.net
void CheckCount()
{
print(clickCount);
clickCount = 0;
}
ここでプリントしてるから、clickCountを判定にして
switch (clickCount)
case 1:クリック1の処理
case 2:クリック2の処理
という感じ
すまん今スマホなんで微妙だけど、スイッチ文については調べればすぐ出ると思う
色々やってみて
ダメなら明日またパソコンからサンプル上げます
207:名前は開発中のものです。
20/06/17 08:44:59.62 cnJYapmD.net
>>204
ありがとうございます
クリック判定はなんとかできたみたいなんですが
インターバル処理みたいのが必要ですよね
208:弟子
20/06/17 08:57:41.54 g/ocbutF.net
インターバル?
具体的にはどんな?
209:弟子
20/06/17 09:03:35.36 g/ocbutF.net
ちなみに現状は最終クリックから0.3秒の間隔で確認しているので
その前に判定したいとか?
210:名前は開発中のものです。
20/06/18 08:52:18.24 ZWC38E3l.net
>>207
すいませんなんか変な勘違いをしてました
いろいろ試したところ、switch構文でダブルとトリプルの判定ができました!
ただ、ダブルタップ後、トリプルタップをするまでのほんの少しの間に
ダブルの方の動作が起きかけて、トリプルタップでトリプルの動作になるといった感じです。
ちなみにこのTapTimeを使う場合、これにどう加えればトリプル判定ができるのでしょうか
両方マスターしておきたいので教えてください。
void Update () {
// double tap
if (isDoubleTapStart){
doubleTapTime += Time.deltaTime;
if (doubleTapTime < 0.2f) {
if (Input.GetMouseButtonDown (0)) {
isDoubleTapStart = false;
ChangeSize (true);
doubleTapTime = 0.0f;
}
} else {
ChangeSize (false);
// reset
isDoubleTapStart = false;
doubleTapTime = 0.0f;
}
} else {
if (Input.GetMouseButtonDown (0)) {
isDoubleTapStart = true;
}
}
}
211:弟子
20/06/18 10:40:59.52 HhOkrLW+.net
>ただ、ダブルタップ後、トリプルタップをするまでのほんの少しの間に
ん?Switch文の関数に行った時には確定なのでこのような動きはないはずだけど
ちょっとそこの部分見せて見てください
212:弟子
20/06/18 10:42:34.66 HhOkrLW+.net
んでそのスクリプトは次のような感じかなぁ
改行多くてのせれないから絵ね
URLリンク(i.gyazo.com)
213:名前は開発中のものです。
20/06/18 18:55:08.00 ZWC38E3l.net
>>209
こんな感じです
void TouchCheck(){
if (Input.GetMouseButtonDown(0))
{
CancelInvoke();
Invoke("CheckCount", 0.3f);
clickCount += 1;
}
switch (clickCount)
{
case 1:
Debug.Log("処理1");
break;
case 2:
2タップの処理;
break;
case 3:
3タップの処理;
break;
default:
Debug.Log("Default");
break;}}}
214:弟子
20/06/18 19:39:46.69 HhOkrLW+.net
void CheckCount()
{
print(clickCount);
clickCount = 0;
}
ここでプリントしてるからここにSwith文を入れるよ
こんな感じ
void CheckCount()
{
print(clickCount);
switch (clickCount)
{
case 1: print("1Click処理"); break;
case 2: print("2Click処理"); break;
case 3: print("3Click処理"); break;
}
clickCount = 0;
}
215:弟子
20/06/18 19:54:56.62 HhOkrLW+.net
もし、ChangeSize (true);この処理が遅くて次のクリックを拾ってしまうという感じだったら
この処理中はクリックさせないとか制御するといいかと思います
216:名前は開発中のものです。
20/06/19 07:56:54.58 3EIr5H17.net
>>212
ありがとうございます
switch、TapTime両方ともできました
これでいろいろ応用できそうです
217:弟子
20/06/19 08:33:08.39 Wr4Wd/jw.net
それはよかった
また何か困った事かあれば気軽に書き込みしてね
218:名前は開発中のものです。
20/06/19 12:35:45.42 b2JS2xrv.net
【白血病】 汚染土の上で園児を遊ばせている保育園
スレリンク(baby板)
URLリンク(o.5ch.net)
219:名前は開発中のものです。
20/06/19 21:35:58 3EIr5H17.net
>>215
さっそく困ったことが起きてしまいました。
シーン1で2タップ3タップを行ってて、
シーン2に行った後にシーン1に戻ると、
なぜか2タップ3タップができなくなってしまいます。
シーン1では複数のカメラを使ってる関係で
シーンの移動には普通のCanvasのボタンではなく、
オブジェクトにEventTriggerとColliderをつけたものを使ってます。
これを押したときのタップが2タップ3タップ判定に影響してるのでしょうか
switch文でもTapTimeでも同じでした。
いい方法があったら教えてください。
220:くまじょ
20/06/19 21:52:49.68 qJtZB/g0.net
デバッグすればいいんでないの
いつもならこの変数の値がこうなっていてif文を通過するけど
おかしくなってるときはこのif文が通過しないとか調べられないのかなあ
調べられないのなら仕方ないけど
頑張ってね
221:弟子
20/06/19 22:25:09.94 Wr4Wd/jw.net
シーンを移動すると読み込まれて新たにオブジェクト等が生成されて動くのよ
しかしシーン移動には追加移動があってそれだと既にある所に追加される
どういう、移動を行ってるかのコードが分からないので的確には答えられないよ
コード載せるか、一番いいのはパッケージにして白猫とかに上げてくれれば確認出来ます
何にせよコード見ないと何とも言えません
222:弟子
20/06/19 22:29:11.82 Wr4Wd/jw.net
通常は
ゲーム開始→シーン1→シーン2
この場合はちゃんとタップできる
シーン2→シーン1
これでタップ出来ない
であるならば、シーン2からの遷移がおかしいと推測出来るけど、具体的2どえなってるかこちらでは見えないからアドバイス出来ないよ
223:名前は開発中のものです。
20/06/20 01:45:58.98 LTBNbvLd.net
初心者によくあるシーンを移動して戻ってきたら直前の状態が維持されると思い込んでるパターンじゃないのか
シンプルな実装ならシーンは読み込むたびにリセットされるぞ
224:217
20/06/23 07:54:53.52 v+lde/qB.net
ありがとうございます。
色々調べたのですがまだダメです。
シーン2→シーン1に移るときには
SceneManager.LoadScene("シーン1");
を使ってるので、シーン2は破棄されているはずなのですが、
シーン2から再生スタートして
シーン2→シーン1移動後は、
他にもInvokeを使ってるスクリプトが正しく動かなくなってるので、
Invoke関連の情報はLoadSceneしても残ったままなんてことがあるのでしょうか
225:217
20/06/23 08:36:08.96 v+lde/qB.net
シーン1でもシーン2でもInvokeを使った処理をしてます
2タップ3タップのスクリプトは
Invokeを使ってないTime.deltaTimeの方でもダメなので
Invokeだけの問題ではなく、時間処理関連がおかしくなるみたいです。
226:名前は開発中のものです。
20/06/23 08:59:42.00 VmEpDOpx.net
横から失礼。
タップ部はクリアできたのでしょうか?
まずは遷移をタップではなく、ボタンを3つ用意して、遷移がキチンと成り立つか確認するといいと思います。
おっしゃってるように、ivokeなど裏で動くものはシーン消滅の時どう動くのか熟知していないと話になりません。
227:弟子
20/06/23 10:13:49 bqoQds5b.net
とりま、遷移移動やってみたけど特に問題なかったよ
検証する場合には、コードを最小限にするといいよ
遷移用のクリックコードは
URLリンク(i.gyazo.com)
シーンは
URLリンク(i.gyazo.com)
これを、2つめのは三角を表示してある
パッケージにしたから、確認してみて
URLリンク(whitecats.dip.jp)
DLパスは1234
新規でプロジェクト作成して、上記のパッケージをインポートすれば確認できると思います
実行の際にはシーンの登録を忘れずに
228:弟子
20/06/23 10:46:04.75 bqoQds5b.net
>>224
>タップ部はクリアできたのでしょうか?
214に出来たって書いてるよ、読んでないのかな
横からくるなら読み返してから書こうね
あとコードも載せてるから自身で検証してから色々と意見言おう
そうじゃないとほんとに 失礼 な話だよ
レスも熟知してないなんて、話になりません。
229:弟子
20/06/23 11:00:25.06 bqoQds5b.net
気になるのは
>複数のカメラを使ってる関係
EventTriggerでクリックするという事は、カメラにRaicaster付けてると思うけど
それが無効になってる可能性もあるのかな
まずは、カメラ一つでやってみるといいかな
230:弟子
20/06/23 11:01:48.36 bqoQds5b.net
すまんね、君のコードが見えない為に、色々と予想でしか書けないのだよ
だから解決までに時間がかかってしまうのだ
本当に解決したいなら、コードをアップしてくれれば一発解決なんだよね
231:名前は開発中のものです。
20/06/23 12:06:46.63 VmEpDOpx.net
>>226
本当に完了しているか確認しただけなのだがね。
その上でデバッグをと思ったが、まあどうぞ。割り込まれたくないならそういってくれ。
232:弟子
20/06/23 12:28:44.61 bqoQds5b.net
あのね
初心者スレからわざわざこっちに誘導したのよ
こういう七紙がうざいからね
今まで全く出てこなかったのにレスが増えるとこういう七紙が湧いてくるんだよなぁ
ほんと七紙ってうざっ
233:名前は開発中のものです。
20/06/23 13:08:51.31 kJi7Q44W.net
人に教えようという気概があるのに、いきなり失礼だとかうざとか使いなさんな、人格疑われたらもったいないぞ。
234:名前は開発中のものです。
20/06/23 13:09:33.83 kJi7Q44W.net
あら、idかわっちまった。
235:弟子
20/06/23 18:55:41.55 bqoQds5b.net
別に選挙に出るわけでもないし人格などどうでもいいんだけど、もともとは
横から失礼といいつつ、締めで「話しになりません」とかの上から目線の方が人格的にどうなのかと思うけどね
ましてや自分でコード上げない検証しないってんなら尚更でしょ
それに何故かこの使われてなかったスレなのにそこに湧いてくるってなのもね
まぁホント七紙っていうのは不思議な生き物だわ
236:名前は開発中のものです。
20/06/23 20:00:43.94 kJi7Q44W.net
君が他のスレで叩かれたのは見てきてるよ。
それでもめげずに初心者指南してるのは立派だが、だからといって見ていないと決め付けるはいかがなものか、いや、あれしきでそこまで荒んでるのかい?
それに本人がivokeやtimeでスパゲティになってるようだから、熟知してないところをはっきりさせる事が
237:失礼なのかい? なんで人格から選挙の話になるんだw ちょっとアレ入ってるのか?
238:弟子
20/06/23 21:15:05.31 bqoQds5b.net
アレって何かな?
しっかしオレのファン多いなwww
質問に関係ないの好きだね
コードの話なら歓迎なんだが
まぁ名無しだからしょーがないかw
239:弟子
20/06/23 21:31:26.19 bqoQds5b.net
ついでに言うと
>熟知してないところをはっきりさせる事が失礼なのかい?
んで
>ivokeなど裏で動くものはシーン消滅の時どう動くのか熟知していないと話になりません。
んじゃ熟知しているあなたに、ivoke、おそらくinvokeだと思うけど
消滅の時、どう動くのか書いてあげればいいんじゃないの?
なんで、話になりません って突き放したような言い方なのかねぇ
優位に立ちたいだけでしょw
で、どういう風に動くの?熟知って事は、メモリーがどうなってOSから削除されてとか知っているの?
で、それ知ってアプリケーション作成にどう関係あるの?
説明を是非お願いします
なんせ、初心者相手なのですから、まったくわからないのですよ
熟知しなくても私は作れると思っているけどね
是非熟知した内容をここで披露してみてください
それで初心者が作れるようになるならいい事です
240:名前は開発中のものです。
20/06/24 08:01:52.43 QrxPQpfr.net
もう顔出さないとか言ってたあの時の話はだいぶ滅入ってたんだね。
ここには俺1人しかきてないから大丈夫だよ。人格攻撃や暴言とかしないから。
ivokeの件は、おっしゃるように誤字するぐらい知らないからに決まってます。だから自分に向けても含めて、話にならないと言ったのですよ。これはわかりにくくてすまんかったね。
裏で動く処理はデバッグではわかりにくくする要因の一つだから、本人も怪しんでるから切り離してやるべきだよ。
本人は動くものを望んで入ると思うが、コードを渡してハイ終わりはまた次の相談が出るからね。
問題の解決方法を教えてあげるのが一番いいと思うが…これは人によるから、ソースアップされたらスルーしてるよ、現に何も言ってなかったでしょ?w
241:弟子
20/06/24 08:13:08.22 wt31zZvI.net
昔ベーマガという雑誌があってだ
そこには必ずやゲームのソースがのってたのだよ
で何も知識もないその頃の読者たちは必死でそれをパソコンに打ち込んで実行するのだよ
そういう動くコードを、さらに改造して知識を深めて行って最終的に自分で1から作れるようになるのさ
242:弟子
20/06/24 08:39:48.57 wt31zZvI.net
>>237
> 問題の解決方法を教えてあげるのが一番いいと思うが…
完全に僕とはスタンスが違うので、それやりたいなら自分でスレ建てればいいよ
わざわざ人が質問スレから誘導してきたのにでしゃばってまでやりたいというのがわからんが
あ、このスレあなたが作ったんであれば、私が出ていくから後はしっかり最後まで面倒見てね
どうします?
243:名前は開発中のものです。
20/06/24 09:02:08.96 LHtPCiJZ.net
>>225
ありがとうございます。
このパッケージで試したら移動後も問題なくタップ検知しました。
ということは
自分のシーン2の方のスクリプトに問題があるということですが、
LoadSceneで他のシーンをロードしても影響が残るってことは
シーン2で使ってるタップ関係以外の
Time.timeなどの計算が続いてるってことですよね。
Invokeやtimeなどの時間計算をきちんと終了させるために
必要なコードが抜けてるのでしょうか
それともシーンをDestroyすると完全に消えるとかあるんですかね
244:名前は開発中のものです。
20/06/24 10:38:44.96 QrxPQpfr.net
>>239
ベーマガなんて懐かしいものをw
そんなの出さなくたって通じてるよ、君も書いてるでしょ、よく読まずに諭すなんて 失礼 な話だってw
それに、ほら弟子、あ弟子の弟子になるのかな?ソースが動いたってレスくれてるじゃないか、完了したみたいだけど。さすがにそこからは踏み込めないよw
245:弟子
20/06/24 11:31:27.90 wt31zZvI.net
>>240
うーん、全体が見えないので何とも
objectにクリック設定しているって事なのでカメラからのRaycaster関係かなって気がするけど
原因究明には、最小限のコードにしてみる事です
あとは、今回のちゃんと動いてるパッケージにそちらの欲しい機能を追加していく感じかなぁ
なんにせよ全体が見えないからねぇ
246:弟子
20/06/24 11:43:20.74 wt31zZvI.net
>それともシーンをDestroyすると完全に消えるとかあるんですかね
んーと、シーンのDestroy?
ちなみにUnloadする場合、非同期なのでシーンのUnloadをまって処理するとかの場合には
製作途中で得たUnityのミニ知識を披露するスレの44あたりにやり方書いてあるので、参考にしてみて
スレリンク(gamedev板:44番)
247:名前は開発中のものです。
20/06/24 21:49:50.01 LHtPCiJZ.net
>>243
検証した結果、シーン2で使ってるスクリプトの中の
「Time.timeScale = 0;」と「Time.timeScale = 0;」を取り除くと
シーン1に行った後のタップの不具合が起きなくなりました。
調べると個別にOnPause()メソッド等で処理すればいいみたいですが、
Time.timeScale = を残したままシーン2から移動するときに
この影響がなくなるような方法はないでしょうか
248:名前は開発中のものです。
20/06/24 21:51:36.38 LHtPCiJZ.net
>>244は
「Time.timeScale = 0;」と「Time.timeScale = 1;」
の間違いです。
249:弟子
20/06/24 22:00:13.48 wt31zZvI.net
単純に考えると、シーン2で変更してるなら、シーン1に行く前に戻せばいいような気がします
ちょっと検討つかずで検証コード書けないからまた、明日にでも考えるけど
なにか参考になる、コードある?
(今は酔ってるのでこのあとは寝る)
250:名前は開発中のものです。
20/06/25 00:21:39 wwm4yt+D.net
Time.timeScale = 0の時に中断したりデストローイして
0になりっぱなしになってんじゃね?
251:くまじょ
20/06/25 10:35:34.74 HXIUvOl4.net
色々勉強になるなあ
初心者の俺には知らないことや難しいことばかり
>>244
それはタイムスケールを0に変えたままダブルクリック等は普通に動作させたいのか?
タイムスケールが0だと時間が進まないから時間経過でシングルダブルトリプルを区別することが出来ないと推測
ググったら
タイムスケールに影響されないのがあった
これでタイムスケール0でも時間経過でシングルダブルトリプルの区別ができそう(推測)
古いバージョンにはなかった的なことも書いてあった
注意としてアクティブではないときも時間経過するという違いがある
252:弟子
20/06/25 10:39:15.08 kYETgQeL.net
一応TimeScaleについては公式に説明あるので参考までに
URLリンク(docs.unity3d.com)
253:弟子
20/06/25 10:43:47.26 kYETgQeL.net
くまじょさん、せっかく色々と書いてくれるのはありがたいけど
相手は初心者なので、推測じゃなくて、自身で検証してくれるといいかと
その上で書いてもらえるとみんな幸せになれると思う
じゃなきゃ混乱の元に
254:弟子
20/06/25 19:31:35 kYETgQeL.net
検証してみた
public void BtScale0()
{
Time.timeScale = 0;
}
private void Update()
{
print("delta:" + Time.deltaTime);
}
こんなコードでScale0の時にdeltaTimeがどうなるか
URLリンク(i.gyazo.com)
結果、0だった
だから、+= Time.deltaTime こういうコードは使えなくなるね
Time.frameCount は常に動くので、deltaTimeのところはこちらを使うように変更すればいいかと思う
OnPauseとか書いてたからポーズ処理だと思うけど
他にいい手があるかも知れないので
明日また検討してみる
255:名前は開発中のものです。
20/06/25 22:51:19.85 VUtd4Pqo.net
>>251
いろいろ試したところ、
シーン2で使ってる「Time.timeScale = 0;」をそのままにして
シーン2からシーン1に移動するときに
一緒に「Time.timeScale = 1;」をしたところ、
シーン1で不具合が起きませんでした。
「Time.timeScale = 0;」はシーンをまたいで
プロジェクト全体に影響するようなので、
0のままにしておくというのがよくないみたいですね。
256:名前は開発中のものです。
20/06/25 23:02:05.26 zBD2mxRN.net
0だとゲーム内の時間とFlexUpdateが完全に止まるから、
物理やtweenや時間を使ったエフェクトが一切利かなくなるはず
257:弟子
20/06/26 08:00:10.08 tKrNJp2d.net
>>252
単純なのはシーン1のstartにtimescale=1をかいておくとシーンが増えて戻し忘れがなくなるかな
とりあえず解決っぽいので良かったです
258:弟子
20/07/29 10:48:43.15 dVlkZpMQ.net
10日からわんういーく
今度はランキング入れたいな
259:弟子
20/08/07 12:28:11.60 44ntxl1X.net
さてどんなお題かなぁ
前回は密、時事的にいくと自粛とかgotoとかか?
作りにくいぞ
260:弟子
20/08/11 22:34:23.58 4Ol4zZ9A.net
ヤバい、1week の、続々作ってるよねーつぃったー勢すごいわ
弟子はやっとアイディアが固まりつつ
と言ってもショボいんだわな
261:名前は開発中のものです。
23/08/01 22:23:52.32 p/G4SrVxq
ダサイタマ県民は住民の生命と財産を破壞する世界最惡の殺人テロ組織公明党に推薦され,力によるー方的な現状変更によってタ゛サヰ夕マまて゛
数珠つなき゛て゛鉄道のзО倍以上もの莫大な温室効果ガスまき散らすクソ航空機を倍増させて気候変動させて海水温上昇させて.かつてない量の
水蒸気を曰本列島に供給させて越谷や川越など.あちこち水没させられながら強盗殺人の首魁齊藤鉄夫と共謀して私利私欲を追求し続ける大野
元裕人殺し知事を落選させてダサヰタマの汚名を払拭しよう!熊谷どころかタ゛サイ夕マ全域を灼熱地獄にして熱中症て゛殺害、クソ航空騷音に
よって知的産業根絶やしと゛ころか.ストレスやらて゛救急搬送されたり,耐えられず引っ越しを余儀なくさせられた住民まて゛発生させて、憲法
1з条25条29条と公然と無視して住民の私権を根底から奪い取ることて゛私腹を肥やし続ける知事を続けさせて殺されないで済むと思うなよ
庁舎か゛住民に破壞される民主主義國フランスに対して日本は絢爛豪華な庁舎で冷房ガンガン、クソの役にも立たないと゛ころか住民の権利を強奪
して私腹を肥やすこと以外に何ひとつ考えることのないクソ公務員を放置することこそが,お前らの生活と国家の存亡の危機だと理解しよう!
創価学会員は、何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最悪の殺人腐敗組織公明党を
池田センセ‐がロをきけて容認するとか本氣で思ってるとしたら侮辱にもほと゛があるそ゛!
hΤтРs://i、imgur.cоm/hnli1ga.jpeg
262:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています