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

■ このスレッドは過去ログ倉庫に格納されています
2020/01/11(土) 14:28:59.18ID:wPvGtAaQ
ゲームエンジン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初心者質問スレBuild2
https://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
2020/01/21(火) 00:42:25.80ID:xWdssdmX
>>183
デモならタイムライン使うのが楽でいいんじゃない?

もしくはゲーム時間の進行をaudio sourceのtimeから作るようにすればズレないんじゃないかね
2020/01/21(火) 10:33:07.11ID:4lKB/S8y
>>182
アセット関連なんで作者に聴くのがいいと思うけど
https://blogs.unity3d.com/jp/2018/07/17/cinemachine-for-2d-tips-and-tricks/

とりあえずカメラはViutualCameraの設定を変えるんじゃないかな?

何が原因か突き止めるには、プロジェクトを単純化するに限るので
まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるかですね
186155
垢版 |
2020/01/21(火) 12:35:35.08ID:MXzB69W0
>>185
>まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるか

これを試してみようと思います。
なんにせよ原因を当ててくださったので非常jに助かりました。
ありがとうございます。
2020/01/21(火) 16:25:37.81ID:q2cUKp57
クォータービューのマップを作ろうと
自分で打ったドットタイル32×32(png)をタイルパレット(isometric)にDDしても表示されないのですが何故ですか?
assetsには表示されてます
2020/01/21(火) 16:33:51.87ID:q2cUKp57
すいません解決しました
2020/01/21(火) 18:04:38.26ID:yyMJ8NI+
mac版バージョン2018.4.11f1
unityにautosave機能を追加したいんだけど
有志配布のものはすべて2018には対応せず…
良いのない?
二時間頑張ったのがパー、もう嫌だorz
2020/01/21(火) 18:15:08.15ID:yyMJ8NI+
あった
解決しました
2020/01/22(水) 11:09:38.22ID:tfrN0HGP
                    \     ,
             、   |      ヽ  /
             \  |     x|ー/‐- 、    r‐、
           , -―\l_ /`ヽー==ミx、 \ r勺人__
          /    / !|   \   丶  l:|;;/;;;;___;;}
         /:/  / / / 从 {丶  \   :\弌;;;;/ //
          l:/ /  / 〃/l/ヽ \\-‐\:::.....lハ: 〉;;三;;(
        / /  /|  | l|-|‐-、\ト ィ==y!:::::/l::| {又又}          x%フ广l
    ー=彡イ:::/::. ,.::|::..::Vィ==ミ  、 \  ノ/! |/‘7¬イ        /%゚//
          |:::l|::::|::|/乂:::::ヾ   _, -―1/l|ノ}/  /  /           //゚//
          |:::i|::人| l |≧ァ`` ヘ/   | 八 |  /  /        /ヽ_彡 '
          乂l'   \/ / ゝ、 \ _,ノ /  \/  /      / /
                /丶{   `≧ァーく( _,> '´  /      Xニ⊇:′
          /       /⌒ ¬f工¨|    /、 \  ./  r「’|
          /      /     ||__」 レ=≦、    / /「| | l|
        /        /l  , -―ァ≠¨l | ;/ |\,_/ /}又又i「 - 、
        / /     /,,;|   /,; 〃ヽノ/, |/ ∠_ ‘7¬イ   \
        / /  _   /,,;;;l>'´,,,;;;; /  / /^l/ /;;;/ `Y   | \  丶
        / /  〈 〈>'´; .;;;;;;;;;;;;;;;;;;;;;;/_/   // /`≧'‐ 、ヽ  〉  丶   |
       ,':/i  ∧_〉,,;;;;;;;;/´ ̄ ̄´   / /ヽ\    `>-'^\  ヽ |
      /' |  ∨,,;;;;;;;;;/         / /   o:} }     ||   |   l |
     ,:   |   \;;;;;;;|   /\./ /    .//       ||   |   | /
     | |      \|   \   x/    .//       ||  /  /'
      爪 弾 く は 荒 ぶ る 調 べ ! キ ュ ア メ ロ デ ィ !

スイートプリキュア♪の北条響
2020/01/22(水) 11:41:29.44ID:fkmqYQ67
htmlが流行っていた時期、タグのコピペとちょっとした改変でホームページを作ってました

unityド素人でもそんな感じでゲーム作れます?本に書いてある通りの丸コピーではなく

コンセプトはスクリプトを書かないゲーム作りです!
2020/01/22(水) 12:04:57.58ID:Gjke/PAp
無理
194名前は開発中のものです。
垢版 |
2020/01/22(水) 16:38:52.09ID:jAdrPsCn
2020でブループリントみたいなやつ入ってくるんじゃなかったっけ
2020/01/22(水) 20:26:41.16ID:FnFWF1+H
ブループリントはほぼスクリプトなんだわ…
関数がノードにパッケージングされてるだけでやってる事は変わらん
2020/01/22(水) 22:53:26.09ID:r+2nxT98
UniRx 使い始めたら、Awake()、Start() の中に処理が集中するんだけど、
そもそもゲーム開発ではメソッド毎のテストなんての書かない感じ?

てか Unity 開発では ユニットテストとかのテストFWはない?

Visual Studio のクラスビューでメソッドが Awake()、Start() しかない
スクリプトが増えてきて不安になる…
197名前は開発中のものです。
垢版 |
2020/01/22(水) 23:20:39.00ID:6KrHfY+K
Test Runnerと呼ばれる機能がUnityにはあります

ぐぐっただけなので内容までは知らん
2020/01/22(水) 23:41:51.51ID:9P6fyKWd
UniRxって何が良いの?
jQueryみたいなもんでGCが致命的になるゲーム開発だと地雷でしかないと勝手に思ってるけど
2020/01/23(木) 00:09:52.21ID:BeWKcfCr
>>197
ありがとう、自分でも探してみたけど、Unity Test Runner が
公式にあるみたいなんで試してみる。

>>198
むしろ自分が初心者だからこそ UniRx が凄く便利だと感じる。

例えば、Transform の位置情報を加減することと、
Rigidbody に力を加える動きを書こうすると、
それぞれ、Update() と FixedUpdate() に分散して書くと思けど、
UniRx なら Start() の中に両方書けるので分かりやすい。

また、普通にプレイヤーコントローラのスクリプトとか書いたら、
Update() と FixedUpdate() の中身が "if 分岐” だらけになると推測するけど、
UniRx なら、コードから "if 分岐” がなくなりスッキリ分かりやすくなった。

でも確かにGCパフォーマンスは心配。
2020/01/23(木) 00:35:20.23ID:BeWKcfCr
あと UniRx だと、何秒後に とか、何フレ後に とか、何回とか、ゲームに必要な処理が簡単に書ける。
おそらく、まったくのプログラム初心者は UniRx から始めた方が良いとさえ思える。

自分は既に書いてしまった膨大なコードを UniRx を使用するコードにリファクタしつつあるけど、辛い…
誰か最初に教えといてくれよと思った。

まあ Unity初心者の個人的な感想だけどね。
2020/01/23(木) 01:04:15.17ID:k7QW6u8C
>>199
UniRxのTriggersをメインで使ってるってことね
2020/01/23(木) 06:19:45.63ID:xz19b8uw
こんな早朝に人いるかな?
Rigidbody2D.AddForceを使ってジャンプさせているんだけど
rigidbody2D.AddForce(Vector2.up * 数値);って感じで。
しかしこれではジャンプ力(高さ?頂点?)を決めてやれるだけで
ジャンプそのもののスピードはいじれない。
ぽい〜んってジャンプじゃなくて
ヒュンッとしたジャンプをさせたいんですが良い方法あります?

C++時代なら毎フレームに加える数値を増やせばよかっただけなんですよねえ
2020/01/23(木) 08:02:49.45ID:BeWKcfCr
>>202
C++時代みたいが良ければ Update() で Transform に毎フレームに加える数値を増やせば出来るよ。

AddForce は
204名前は開発中のものです。
垢版 |
2020/01/23(木) 08:04:53.53ID:BeWKcfCr
AddForce では加える力を決めれるだけで、それで高さ?頂点?を決めれるわけじゃない。
2020/01/23(木) 08:32:54.21ID:BeWKcfCr
あと多分 質問の状況からすると rigidbody.velocity += Vector3.up + 調整値 で、
FixedUpdate() で、物理フレーム毎に調整値をいじる方が望みの動作を得られる気がする。

でも、それが物理挙動かと言われれば違う気がするし、それなら素直に Transform の数値増減でいいじゃんとも思う。
この辺りどうなんだろうね?

rigidbody.AddForce だけでまともなゲームのジャンプになるの?
2020/01/23(木) 08:43:29.52ID:sYrsRPW1
ジャンプの仕方が目標みたいだから、rigidbodyを極めてもよし、transformでコントロールしてもよし。
好きな方で。
addforceなら、velocityに、加えてgravity値をコントロールするとか試行錯誤だね。がんばれ。
2020/01/23(木) 09:05:35.69ID:o31+m3nu
キャラクターとかはキネマティックにして物理エンジンに任せずに自分で動かした方が思った通りの動きになるんだよね
2020/01/23(木) 10:00:04.83ID:KLj1RF1a
物理計算サイトが検算するのに捗る

自分でスプレッドシートつくる方が身につくけど
2020/01/23(木) 13:04:24.91ID:rlCEa5FQ
>>202
単純にジャンプの速度を上げたいってだけなら、重力を大きくするか、
特定のキャラクターだけそうしたいならRigidbodyのGravityScaleを大きくするとかかな。ただしこれだと落下速度も速くなっちゃうけど。

一時的に物理計算を無視して完全に制御したいなら、transformよりも
Rigidbody.MovePositionを使って動かす方がいいかも。
これなら周りのオブジェクトに物理的な影響を与えながら移動できるし、
fixedupdate内で書くことになるので
「普段は物理無視したいけど爆風に巻き込まれた時は物理に従う」
みたいな実装が楽だよ。
2020/01/23(木) 17:48:04.91ID:9HsMMURI
おっぱいも物理エンジンよりも手で揺らした方がイキイキしている気がする
2020/01/23(木) 17:51:59.32ID:sYrsRPW1
それは物理エンジンが…あ、いやなんでもない。
2020/01/23(木) 20:32:46.84ID:o/nrz+aB
AnimationControler みたくステートマシーンをグラフィカルに編集できるアセットってないっすかね?
AnimationControler と StateMachineBehaviour がありゃステートマシンでやるようなこと何でもできるじゃないのって思ってたけど、
Time.timeScale=0 したら setTrigger しても状態遷移しないし、
やっぱりステートマシンのすべてを AnimationControler に任せるのは無理があるのかなとか思って。
なければ State パターン でハードコーディングすべきなのかなやっぱり。
2020/01/23(木) 20:40:25.80ID:o31+m3nu
>>212
animator.updateMode = AnimatorUpdateMode.UnscaledTime;
2020/01/23(木) 21:43:00.61ID:o/nrz+aB
>>213 うお、そんなオプションが…。解決しました。感謝です。
2020/01/24(金) 04:03:03.22ID:+Fsi074W
すみません、変な質問なんですが Input.GetAxisRaw("Horizontal")
この処理をキーを離さずに一度リセットして認識し直させる方法はありませんか?

、、というのも「ある状況」になるとキーを押しっぱなしのままだと
Input.GetAxisRaw("Horizontal")が認識されない状態になるバグがあり、
一度でもキーを放して押し直すとちゃんと認識されるようになるんです。
その原因がどうにもわからないので、その状況になれば毎度リセットさせたいな、と。

具体的に言いますと
プレイヤーが死んだら即定位置からリスタートする状況のゲームがあって
移動方法はInput.GetAxisRaw("Horizontal")からキー入力を受け取るんですが
プレイヤーが死んだ時に例えば右キーを押しっぱなし(「+1」を受け取り続ける)で死んだとして
押していた右キーをそのまま押したままリスタートを向かえますと
開始直後右入力を認識してない(Input.GetAxisRaw("Horizontal")で受け取る値は0のまま)状態となってしまうんです。
ですが一度キーを放して押し直すと「+1」を受け取るのです。
これだけ聞くとよくあるソースミスと思われるでしょうが、ちょっと
Input.GetAxisRawのバグっぽいんですよね。

とりあえず、プレイヤーが死んでリスタートされる時に
例えばvoid Start()の中に(Input.GetAxisRaw("Horizontal")を
取得しなおす処理を書いてやりたいんです。
これが不思議なことに(Input.GetAxisRaw("Horizontal")を書いただけじゃ
取得しなおしてくれないんですよね、、、、
216名前は開発中のものです。
垢版 |
2020/01/24(金) 07:02:28.39ID:9g9ZzaxQ
バグっぽいと言うのはどこの情報ですか?
2020/01/24(金) 07:54:41.99ID:1mzH9O5r
>>215
普通に考えてリスタートの処理の仕方に問題があるかと。
ゲームオーバーで最初に戻るにしても、インプット関数としては、ゲームオーバーしようがしまいが関係ない。なら、リスタートまでに何か影響のある処理を入れてしまっている事が考えられる。
例えば、start()に取得し直しとか書いてるけど、startをまた呼び出してるの?すまん、私はそんな表記はした事ないから異常に見えました。
2020/01/24(金) 12:14:44.83ID:JiuRt8jn
プレイヤーオブジェクトをDestroyしてる説
2020/01/24(金) 16:44:42.21ID:YxoFqWNA
おこなの?
2020/01/24(金) 21:18:19.49ID:lHO70wOG
質問です
編集ソフト間ではテクスチャやマテリアルをFBXに同梱するのは珍しくありませんが、Unity上ではあまり見かけません
単にUnityではFBX内のデータを編集できないから邪魔という理由かなと思っていますが、他にも理由があるのでしょうか?
2020/01/24(金) 21:48:57.86ID:+Fsi074W
>>217
説明が難しいんですが頑張りますね

>普通に考えてリスタートの処理の仕方に問題がある

確かにその通りです
でも別にまだ作り始めですから複雑なことしておらず
Input.GetAxisRaw("Horizontal")で左右移動
Input.GetKey("space")でジャンプ。

バグが起きるのは方向キーを押しっぱなしで一度でもジャンプしたあとに
(その方向キーを押しっぱなしのまま)死亡してリスタート後もその方向キーを
押しっぱなしのままでいると
Input.GetAxisRaw("Horizontal")が認識されない状態になるというものです。
あと、>>218さんの言う通り、
プレイヤーオブジェクトをDestroyしたあとリスタートしています。

ちなみに方向キーは押しっぱなしでも一度もジャンプせずに死ぬと
その方向キーを押しっぱなしのままリスタートしても
Input.GetAxisRaw("Horizontal")が認識され
開始後キャラクターは押している方向に進むんです。

つまり
Input.GetAxisRaw("Horizontal")が入力状態のまま
Input.GetKey("space")を入力し、
Input.GetAxisRaw("Horizontal")の入力を解除しないまま
リスタートすると
押しっぱなしのInput.GetAxisRaw("Horizontal")は仕事をしてくれなくなる
状況です。
(で、一度入力を放すと正常になる)
2020/01/24(金) 21:50:33.57ID:+Fsi074W
ちなみにプレイヤーが死んだ時、プレイヤー作成時に
Input.GetKeyとInput.GetAxisRaw
を記載したりはしておりません。

そもそもInput.GetAxisRaw("Horizontal")の入力を阻止することなんて
こちらがどうこうできるものでは無いはずなんです

で、例えば
int x = Input.GetAxisRaw("Horizontal")としてやって、
xに入る値の動きをデバッグして見ていますが
死ぬ前は右が押されている間「1」が入り続けるんですが
死んだあとDestroyされ右キー押し続けている状態でも「0」が入ってきます
で、そのあとリスタートするわけですが
死ぬ前から押し続けていた右キー押してる間はずっと0のままなんですよ
これはおかしいと思いませんか?
223名前は開発中のものです。
垢版 |
2020/01/24(金) 22:41:41.98ID:9g9ZzaxQ
いやそのスクリプトがデストロイしてるオブジェクトについてたらダメじゃね

って話しじゃないか
2020/01/24(金) 23:07:02.42ID:rtAyfksW
リスタートを実装しているなら、わざわざDestroyしなくてもいいんでは?と思うけど

仮にUnityの不具合で
instaniateされたゲームオブジェクトが継続中のHorizontalを受け付けないのだとしても、Destroyせず最初のプレイヤーのゲームオブジェクトを使い回せばいいんでは
2020/01/24(金) 23:07:28.97ID:+Fsi074W
>>223
おっしゃりたいことはわかります。
もしそういう仕様(デストロイしたオブジェクトに書いてた場合は一度放さないと機能しない)、
なら
ジャンプをせずに(Input.GetKeyを使わずに)
死んでリスタートした場合は
押しっぱなしのInput.GetAxisRaw("Horizontal")が
開始後そのまま機能してるのがおかしいと思いませんか?

要はジャンプしてから死んでリスタートした場合だけ機能しないんです。
226名前は開発中のものです。
垢版 |
2020/01/24(金) 23:18:30.20ID:9g9ZzaxQ
>>225
リスタートすると言うことは新たなオブジェクトだよね
新しいスクリプトなんだから動いて当然だと思うけど

なんなら明日簡単なサンプル作って検証してみようかね
2020/01/24(金) 23:18:50.47ID:+Fsi074W
>>224さんのレスも考慮させて頂いて
一度デストロイ方式を辞めてみましたが
やはり同じ症状でした。
2020/01/24(金) 23:24:37.56ID:7QzIJzpr
>>225
リスタートってどんな処理してるの?
シーンの読み込み直し?
まったく関係ないゲームオブジェクトのUpdateで監視しててもそうなるの?
2020/01/24(金) 23:27:42.92ID:+Fsi074W
むむ、これは、、本当にバグなのかもしれません。
今、限りなくソースをそぎ落としていってるんですが
それでもその症状が出ます。

ほんと、プレイヤーのスクリプトでやってることは
x = Input.GetAxisRaw("Horizontal");
if(x==0){
//止まる処理
}
else if(x>0){
//右へ移動処理
}
else if(x<0){
//左へ移動処理
}
if(Input.GetKeyDown("space") ){
 ジャンプ処理
}

だけなんです。
リスタート後、xにすでに値が入らなくなるので
自分の移動処理やその他のスクリプトは関係無いはずです。
2020/01/24(金) 23:30:48.57ID:+Fsi074W
>>228
シーンの読み込み直しです。
void RestarScene(){
Scene thisScene = SceneManager.GetActiveScene();
SceneManager.LoadScene(thisScene.name);
}
2020/01/24(金) 23:37:49.39ID:+Fsi074W
これは、、、、今
大変なことが発覚しました。。。
2020/01/24(金) 23:39:22.19ID:YxoFqWNA
>>221
1. 方向キー(←押しっ放し)
2. スペース
3. スタート
これで最初の方向キーの入力が消えるってことなら、
安物のキーボードはそこまでの同時入力に対応していないからなとしか
Unityの問題でなくパソコンの仕様だよ
2020/01/24(金) 23:40:43.33ID:+Fsi074W
このバグの発動条件が
左右キーを押しっぱなし中に「ジャンプした」あと死亡したらと思っていたんですが
違いました。

なんと、左右キーを押しっぱなし中に
「キーボードの他のボタン(どれでも)を押した」あと
死亡したらでした!!!

なんと、ゲームで使ってないキーを押しても、この症状が出ます!!!
これはどういうことでしょうか???????????
2020/01/24(金) 23:42:33.68ID:rtAyfksW
シーンを移動するとInputがリセットされる件

で検索

url貼ろうとするとNG食らうので
2020/01/24(金) 23:45:43.21ID:+Fsi074W
>>232
>これで最初の方向キーの入力が消えるってことなら

いや、私の説明を誤解してます。

2. スペース
の後も「1. 方向キー(←押しっ放し)」は生きてます。
そのままその方向に歩いていくし、放せば止まります。
ただ、1.を押しっぱなしのままで歩いて敵に当たったりして死亡したあと
再スタート後に利かなく(Input.GetAxisRawが左右を認識しない)なってるんです。
押しっぱなしのままなら、です。

説明が難しい。。。
2020/01/24(金) 23:55:45.35ID:+Fsi074W
>>234
検索して拝見しましたが
非常に勉強になるブログでした。

しかし自分のケースと少し違う気がしますがどうですか?

なぜなら、自分のケースは
確かに二つ目のキー入力をしますが
その後、その二つ目を放して、シーンを移動します。
つまりシーンをまたぐ時はキー入力は1つなんです。
そのブログのケースと違う気がするのですがどうですか?

あと、もひとつ言いますと
ゲットキーの設定関係なく、
二つ目のキーはパソコンのどのボタンでも
押したら発生します。。。

つまり、
Input.GetAxisRaw("Horizontal")
で右方向キーを入力したまま
パソコンの「w」だの「s」だのどこでも押したあと
(それこそ"Horizontal"では受け付けてない上キーとかでも)
右方向キーを入力したまま死亡して
シーンをやり直すと

右方向キーを入力が利いてない状態でスタートするんです。
2020/01/25(土) 00:44:13.23ID:lrP57LvS
これはもう熟練者様に確認してもらいたいので
シンプルにしたものをパッケージ化しました。
これで症状を確認していただけませんでしょうか。
https://ux.getuploader.com/zipcodezipcode/download/221

まずは
ゲーム開始して、右キーを押しっぱなしで死んでください。
リスタートしても右キーを押しっぱなしです。
そしたらリスタートしてもプレイヤーは右に進むはずです。
そりゃそうです、右キーを押しているからです。

次に、
右キーを押しっぱなしで死ぬのは一緒ですが
その途中に、パソコンのキーボードをどれかひとつ、押してください。
そっちは押しっぱなしでは無く、一度押すだけです。
この間も右キーの方は押しっぱなしです。
で、そのまま死んでください。
すると、リスタート後、プレイヤーは先ほどとは違い
右に進まないんです。右を押している限り、移動はできません。
右を押しながらジャンプはできますが、右を押している限り、移動はできません。

この症状の原因を知りたいです。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2020/01/25(土) 00:47:53.82ID:lrP57LvS
ちなみにバージョンは2018.4.11f1です
2020/01/25(土) 09:41:49.47ID:6e7MKbrk
とりあえずもっとシンプルにして修正したよ
https://thuploader.orz.hm/miniup/?mode=edit&;id=6302

恐らく原因はLoadSceneでしょ、シーンロードするという事はそれまで居たシーンは
リセットされると思う、だから入力が利かなくなるんじゃないかな

とりあえず同シーンリスタートしたら問題なく出来た


それから、コライダーとか整理した方がいいかな同じオブジェクトに二つ付いてたり
場所かぶっていたり、なんか無駄がおおかった
240名前は開発中のものです。
垢版 |
2020/01/25(土) 09:43:38.51ID:6e7MKbrk
あ、ちなみに制作は
2019.2.17f1で取り込み確認、パッケージ化
2019.2.5f1でも確認

2018年バージョンは当方もうすててたので、未確認
でも特にバージョン違いの事してないから問題ないと思います
241名前は開発中のものです。
垢版 |
2020/01/25(土) 09:53:45.45ID:6e7MKbrk
>>293
>恐らく原因はLoadSceneでしょ、シーンロードするという事は

すまん、これ原因究明してないから、これが原因かどうか不明なので
ちょい出かけるからまた戻ったらシーン展開でも症状確認してみるわ
2020/01/25(土) 10:51:31.73ID:lrP57LvS
>>239
ありがとうございます
修正感謝します
確認してみます!

>シーン展開でも症状確認してみるわ

はい!もちろん修正されたものを見て自分でも原因を考えてみますが
ぜひとも宜しくお願いします。
2020/01/25(土) 11:51:30.29ID:52iKK3mn
優しいスレ
244241
垢版 |
2020/01/25(土) 13:15:17.01ID:AAVfnYWp
https://i.gyazo.com/37810d926641f9d4739c15f70e690d53.png

こんな感じでリスタートでLoadSceneしてみたら、症状でましたね
LoadSceneAsyncでも同様なので、やはりシーンロードするとバッファが詰まるのでしょかね

とりあえず途中経過です
なぜLoadSceneでキー2つ目押でなるのかについてはなんか大変そうだな根本原因掴むのは
2020/01/25(土) 13:30:42.22ID:4hPFEDML
>>234 の記事がそのまんま答えじゃない?
この記事によると「シーン遷移時にInputはリセットされる」というのが仕様で
今回の場合「シーン読み込みしてるのに横移動入力が拾えてた」というのがむしろバグらしい

で、ちょっと試してみたけど
Inputを拾うオブジェクトをDontDestroyOnLoadにして破棄しないようにしても
普通にシーン遷移を行うとInputはリセットされてしまうようなので
どうしてもシーン読み直しで、かつInputを継続して拾いたいなら
>>234 の記事にあるようにLoadSceneでLoadSceneMode.Additiveで読み込むしかなさそう。

ただ、もし自分だったら
・シーンの読み込み直しなしでリスタートを実装する
・リスタート時に方向キーから指が離れるような演出にする
・気にしない
のどれかにすると思う
2020/01/25(土) 14:50:49.41ID:rO5N4tZX
シーンごとのリセットは
アクションゲームなら必須に近いし
ゲーム制作に支障が出そうな仕様だなぁ
2020/01/25(土) 20:13:13.83ID:lrP57LvS
>>244
>やはりシーンロードするとバッファが詰まるのでしょかね
>>245
>シーンの読み込み直しなしでリスタートを実装する

その様子だとロックマン系のアクションゲームとかでよくある
プレイヤーが一画面分ずつ画面切り替え(切り替わり後、敵が定位置から発生)で
移動する場面などのときに
方向レバーの入力がいちいち途切れて
スムーズなキャラの移動みたいなんができないって
ことですよね?
まだ試してないのでなんとも言えませんが、、、
というかscene遷移って
それこそタイトル画面からゲーム画面にいったりするところでも使いますし
シーン遷移のたびいちいち方向レバーからの入力を途切れさせるって仕様自体
どうなんでしょうか、、、なんかテンポ悪い気がするんですが、、
これだけ痒いところに手がとどくUnityにおいて
GetAxisRawに対してscene遷移時の細かな設定ができないとは、、・
できそうなもんですが、、、
2020/01/25(土) 20:13:46.52ID:lrP57LvS
で、今パッと思いついたのはグローバルな変数に
シーン切替前の瞬間の方向キーの値を確保しておいて
切り替え後の最初だけのその方向キーの値を
入れ込んでやるって感じにしてやれば、、どうでしょう??

とりあえずそういうノリで一度打開できるか試してみます。
2020/01/25(土) 20:16:17.57ID:lrP57LvS
>>241さん、修正パッケージありがとうございます
原因究明はともかく修正したソースを見せていただき
なるほどーって感じでこちらは大変勉強になりました。
2020/01/25(土) 20:16:32.82ID:AC7xcaw6
/i/|ii!//|!/!i/´i/   .|i |/ノ        i\i!゙、:iヽ|:::|  ヽ 'i  ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ
i i 川i!ハ/" _!   | │        川 ヾ:ii ゙'∨     |    ゙ヾiヽヽ;||:::::i':::::::::::::::::::::::::
ノ ノ/リ,,,,,,二三テ=''" ヽノ        ル |ノノヽヾ ノ  、,,,ノ,、     iヽ:::||:::::i'::::::::::::::::::::::::::::
 /   ̄ ´~~゙''''    ゙''‐- ..,,         ,, ‐'    `゙ヾミッ、,,   ヽ::|::::/::::::::::::::::::::::::::::
,,イ|                i'        i"         `'‐='   `'|/i!:::::i::::::::::::::::::::::::
 i | :::::::ヽ::::ヽ::::::ヾ::    ゙、        l       〃:::::       i//::::ハ::::::::::::::::::i:::
  i i \\\\\ヽ     )       ヽ        ′′′   / /:::::/:::::::::::::::::::|::::
!  | i            ,,ィノ         <         :::: :    /:::::/:::::::::::::::::::/::::
i!  i i!            /i/    ,r''''‐y'''.;、  \             /:::::/:::::/::::::::::::/:::::
゙i!  | i          /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i           /::::::/::::::/::::::::::::/::::/i
 i  i ゙!         ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r''          /:::::::/::::::/::::::::::::/:::://
゙、ii! ゙| i           ノ  ゝ;;;:::::::::::::::::::;ノ 。 `i          //:::::/:::::/::::::::::::/::::::/:::
ヾ!トl ゙iU          i  。l '゛..  ‐ー:::::i    |         //::::::/::::::/::::::/:::/:::::i!::::::
 iiミ! ハ             i  l ,,,,::: :::;;;;;...{ ° ゙、       //::::://::::/::::::/:::::/::::i::::ii::
 i!ヾ!i ゙、!         , '  |::: ::::ヽ   ..}     |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ::
 !ヽヾi  i゙、  ___,,,/   }:: :  ;;;::: ::::::::}     レWノ'レi/、//::/:://:/:::/::/:::ハ:i |::
2020/01/25(土) 20:45:50.43ID:JCoOqUSR
>>247
お前が言ってるロックマンのパターンでは
シーンをわけんなってことだよ
2020/01/25(土) 21:10:01.15ID:7xtf6OfK
Input.GetButtonDown
InputGetButtonUp
でいかんの?
2020/01/25(土) 22:10:27.57ID:aeB2xTib
3Dの坂道だけど、

normalVector = collision.contacts[0].normal; で取れる値が、
坂メッシュの下から接触する時と、坂メッシュの上から接触する時に違うのはなぜだろう?

下から接触は登れるが、上から接触は"上れない"
2020/01/25(土) 23:07:40.70ID:aeB2xTib
自己解決した。

CollisionEnter 一回では法線の正確な値が取れなかった…
2020/01/26(日) 00:40:30.63ID:2uuxF2Qq
>>254
イイね!
2020/01/26(日) 03:45:46.72ID:wmtOSy96
>>252
InputGetButton
期待してやってみましたがダメでした。
>>251
ということですよね
sceneをまたぐと入力が切られること自体クソ仕様なのか
自分がこのタイミングでscene遷移を利用することがクソ思考なのか
未熟者の自分には判断ができません。
そもそも全体のリスタートにscene遷移する必要があるのか否か
scene遷移が必要な場面などについてしばらく勉強したいと思います。
レスくださった皆さまありがとうございました。
257名前は開発中のものです。
垢版 |
2020/01/26(日) 07:48:04.40ID:Fvh37rHc
Unityエディタ上からGameObjectに対してEventTriggerを追加するのではなく、スクリプトからGameObjectに対してOnPointerClickを追加するには、どのようにすればよいのでしょうか?
GameObjectに対して、コライダーを追加して、下記の様にIPointerClickHandlerをインプリメントしたスクリプトを追加しても、OnPointerClick()が呼び出されません。
どの様にすれば良いでしょうか?
class Boo : MonoBehaviour,
IPointerClickHandler,
{
public void OnPointerClick(PointerEventData eventData)
{
}
}
258名前は開発中のものです。
垢版 |
2020/01/26(日) 08:17:37.26ID:ckFKG1Im
>>257
自分用Unityメモ:EventTriggerにスクリプトからEventを追加する
http://kasatanet.はてなblog.com/entry/2017/11/19/233426

はてな部分はローマ字で
2020/01/26(日) 09:40:56.48ID:2uuxF2Qq
>>256
うん、もちっとがんばってね。

あと、down upは、そのままじゃだめだよ。押されたら保管、その値を参照して処理。
2020/01/26(日) 10:26:21.47ID:DH9o2bCr
StaticなクラスからGameObjectを生成しようとしてるんですがGameManager.Instantiateしてるんですが問題ありますか?
そもそもStaticなクラスから生成しようとしてること自体が間違いですかね?
261名前は開発中のものです。
垢版 |
2020/01/26(日) 10:37:30.20ID:ckFKG1Im
>>256
再度修正しました
とりあえず2押に対応しました
ソース整理してないので醜いかもですが

一応、流れとしてはStartシーンをベースにして
sampleシーンをロード、アンロードします
これで入力値はずっと取れるようです
https://thuploader.orz.hm/miniup/?mode=edit&;id=6313
262名前は開発中のものです。
垢版 |
2020/01/26(日) 11:03:24.82ID:ckFKG1Im
>>260
>GameManager.Instantiate
このGameManagerってのが何かよく分からないけど
Instantiateのマニュアル
https://docs.unity3d.com/jp/460/ScriptReference/Object.Instantiate.html
staticのマニュアル
https://docs.unity3d.com/jp/460/Manual/StaticObjects.html
これ見るだけだと特に問題ないと思います

>そもそもStaticなクラスから生成しようとしてること自体が間違いですかね?
Instantiate自体はなんでもクローン化できるし間違いという概念自体無いのかなと
思いますが・・・
2020/01/26(日) 15:48:27.71ID:b+yLlRNB
アイソメトリックタイルで2Dドット絵のクォータービューのマップタイルを配置して、ドットキャラを落としたところ
タイルより少し浮いた位置に落ち、キャラが倒れてしまいました

タイルには2Dタイルマップコライダー キャラには2Dリジッドボディと2Dカプセルコライダーを設定してます
正確に1タイル上に着地するにはどうすればいいでしょうか
264名前は開発中のものです。
垢版 |
2020/01/26(日) 16:06:04.79ID:ckFKG1Im
画面ないからなんとも言えんが
とりあえず公式ブログのプロジェクトでも見てみるとかどう

タイルマップの等角 2D 環境
https://blogs.unity3d.com/jp/2019/03/18/isometric-2d-environments-with-tilemap/
2020/01/26(日) 16:41:35.15ID:b+yLlRNB
>>264
ありがとうございます、キャラが倒れるのは回転を固定にチェックを入れていなかったからでした
こちらの動画が参考になりました、頑張ってみます
2020/01/26(日) 16:57:41.23ID:DH9o2bCr
>>262
説明が足りなくてすいません。
Monobehaviourを継承してない(できない)StaticなクラスでInstantiateをしようとしてるんですけどGameManagerクラスはMonobehaviourを継承してるかつどこからでも呼び出せるからGameManager.Instantiate()といった感じでやってるんですよね。
2020/01/26(日) 18:36:10.24ID:3Sh7JjJE
canvasのtextってもしかして全部再描画してるんですかね?
縦文字スクリプト作ってoutlineつけてフェードイン&フェードアウト作って
ノベルゲームみたいに一文字ずつ出るようにしたら50文字ぐらい読み込むとどんどんと重くなります
もしかしてcanvasって一行一行ずつ作った方がいいんですか?
2020/01/26(日) 18:52:40.04ID:2uuxF2Qq
文字だけじゃなんとも。
2020/01/26(日) 20:48:24.56ID:b+yLlRNB
この画像の赤ラインまで枠を縮めたいのですが、コライダーエディットのような項目が見当たらず、任意に動かせません
どうすればできますか?壁まで歩けてしまいます
https://dotup.org/uploda/dotup.org2048359.png
270名前は開発中のものです。
垢版 |
2020/01/26(日) 20:58:05.62ID:ckFKG1Im
>>269
さっきの公式ブログにさ
「衝突タイルを配置したら、Tilemap Collider コンポーネントを衝突のタイルマップに追加します」
ってあるのよ
回り道かもしれないけど、まずは公式のプロジェクトダウンロードしてやってみたらどうかな、色々と勉強になると思うよ
271名前は開発中のものです。
垢版 |
2020/01/26(日) 21:03:23.84ID:ckFKG1Im
>>267
フェードアウト、インがどう作られてるのか?
一文字づつ出力がどんなスクリプトか?
まるで情報がわからないのに助言できないので、とりあえず

Unityにおける文字の描画と比較検証

https://creator.game.cyberagent.co.jp/?p=6402
272名前は開発中のものです。
垢版 |
2020/01/26(日) 22:38:27.18ID:Fvh37rHc
OnMouseDown()はタッチにもクリックにも反応しますが、クリックのみにしか反応しないようにするにはどうすれば良いでしょうか?
273名前は開発中のものです。
垢版 |
2020/01/27(月) 09:58:59.26ID:Lnpc9jzQ
>>272

Input.touchCount が 0以上なら指タッチ、そうでないならマウスって判定でいいんじゃね
2020/01/27(月) 10:23:02.20ID:yuGD/LWP
downが呼ばれてtouchが0ならマウスじゃないの?
2020/01/28(火) 07:35:36.44ID:JSvWE+67
SceneとGameでフォントがおかしいのってどうやって直すんですか?
https://i.imgur.com/3NBA503.jpg
2020/01/28(火) 08:03:11.76ID:i1aGfgqT
すみません、例えばこんな感じでそのオブジェクトが消滅直前にSEを鳴らそうと
audioSource.PlayOneShot(deadSE);
Destroy(this.gameObject);
してもSEが鳴らずにオブジェクトが消滅してしまいます。
あとでサウンドオブジェクトはシングルトンで作るつもりでいるのですが
今は自分のオブジェクトが鳴らすSEは自分にアセットしたスクリプトにて処理させようと思ったんですが
もしかしてDestroy()直前に命令したら鳴らずに消滅するのでしょうか?
イメージでは鳴って消滅する感じだったんですが。
2020/01/28(火) 08:05:47.09ID:i1aGfgqT
ちなみに、Destroy()の直前じゃないところに記載した場合はそのSEが鳴ります。
呼び出したあとにオブジェクトが消滅するんだから音は鳴るだろって思ってるんですが
2020/01/28(火) 08:26:52.16ID:UXt784Vm
Destroyでスピーカーごと消してるから鳴るもんも鳴らなくなる
2020/01/28(火) 08:38:45.93ID:i1aGfgqT
>>278
なるほどそりゃそうですよね
ありがとうございます!
280名前は開発中のものです。
垢版 |
2020/01/28(火) 08:54:49.39ID:FwIKyioN
>>275
それだけの情報じゃ全くわからん
フォントは何か?
キャンバス設定はどうか?
カメラ設定はどうか?
出来ればプロジェクトアップしてくれると直ぐ見れると思う

>>276
公式のオーディオクリップの長さの説明に待つコードあるよ

https://docs.unity3d.com/jp/460/ScriptReference/AudioClip-length.html
281◆CfpuGKKDJA
垢版 |
2020/01/28(火) 09:05:06.97ID:JSvWE+67
>>280
https://6.gigafile.nu/0204-hc10e2dde071254679caa8754913616cb

お願いします!
2020/01/28(火) 09:08:41.23ID:JSvWE+67
あっできたかも
2020/01/28(火) 09:09:59.69ID:JSvWE+67
やっぱり滲んでます、、、
284◆uBR9Xpjlnk
垢版 |
2020/01/28(火) 09:43:34.78ID:JSvWE+67
>>280
https://6.gigafile.nu/0204-hb8ac2ae46b3c1749f43bf353adeea0ce
すいませんこっちで見てください!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。