【ゲームエンジン】Unityなんでも質問スレpart9

■ このスレッドは過去ログ倉庫に格納されています
1弟子
垢版 |
2022/11/26(土) 18:16:39.05ID:QqorcvPR
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
質問と答え以外は禁止
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・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なんでも質問スレpart8
https://mevius.5ch.net/test/read.cgi/gamedev/1663487800/
2023/01/26(木) 14:09:52.46ID:Ow3iWOel
>>439-440
2000番台では厳しいのですね。もう少しUnityの勉強が進んだらグラボ買い換えを検討します
442名前は開発中のものです。
垢版 |
2023/01/26(木) 17:51:54.39ID:jagBFQMQ
ボタンをクリックすると重複なしでシーンを移動するスクリプトを書いているのですがうまくいきません。
ランダムに移動はするのですが重複してしまいます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class ransu : MonoBehaviour
{
int start = 1;
int end = 3;
List<int> numbers = new List<int>();

void Start()
{
for (int i = start; i <= end; i++)
{
numbers.Add(i);
}
}

public void OnClick()
{
int index = Random.Range(0, numbers.Count);
int ransu = numbers[index];
SceneManager.LoadScene(index.ToString(), LoadSceneMode.Single);
numbers.RemoveAt(index);
}
}
2023/01/26(木) 17:58:22.14ID:+7iujL3L
numbersのなか表示したり
Index表示したり

とりあえず変数見よか
それからまずはシンプルにfor文も無しでやってみよか
2023/01/26(木) 18:22:54.49ID:+7iujL3L
あ、あと ransu ってどこで使うのかな
2023/01/26(木) 19:26:43.68ID:SmFSgKFm
SceneManager.LoadScene(index.ToString(), LoadSceneMode.Single);

SceneManager.LoadScene(ransu.ToString(), LoadSceneMode.Single);

これでいけたりする?
446unity初心者
垢版 |
2023/01/26(木) 19:40:14.25ID:S2Oe4Xhk
animatorで切り替わったら一度だけアニメーションを再生するにはどうすればいいですか?
447名前は開発中のものです。
垢版 |
2023/01/26(木) 20:24:59.50ID:UUiRxKJC
アニメのインスペクタのloopのチェックを外す。
448名前は開発中のものです。
垢版 |
2023/01/26(木) 20:53:16.35ID:jagBFQMQ
>>445indexをransuに変えシーン名を0から3に変えてみましたが、重複してしまいました。
SceneManager.LoadScene(index.ToString(), LoadSceneMode.Single);を削除しDebug.Log(ransu);に変えて試したところコンソールには重複せず1,2,3が表示されました。
2023/01/26(木) 21:00:07.16ID:SmFSgKFm
>>448
よく考えたらシーン移動でnumbersが初期化されてる可能性あるわ
スクリプタブルオブジェクトあたりでnumbersを管理したらいけるかも
450名前は開発中のものです。
垢版 |
2023/01/26(木) 21:27:04.89ID:jagBFQMQ
>>449ありがとうございます。やってみます。
451名前は開発中のものです。
垢版 |
2023/01/27(金) 19:43:19.27ID:jvLwuuae
タイムラインを使ったアニメーションについて、質問させて下さい。

スクリプトから、タイムライン上の任意の位置からアニメーションの再生を開始するにはどの様にすればよいですか?
例えば、タイムライン上の3秒目からアニメーションをスタートさせたいです。
452名前は開発中のものです。
垢版 |
2023/01/27(金) 21:14:18.95ID:c6pK1S7x
アニメーションコンポーネント.time=3.0f
453名前は開発中のものです。
垢版 |
2023/01/28(土) 00:19:29.03ID:5cX97J6F
地面に接地しつつ移動する方法ってどうすれば良いですか?
RigidBodyだと坂を勢いよく登ると下り坂で発射台のように宙を舞ってしまいます
車ゲームなら良いのですが狩りゲーをつくってるので地に足をつけたいです
2023/01/28(土) 08:44:10.09ID:TjcCxVMH
ユニティちゃん動かすチュートリアルでもやりなさいな
2023/01/28(土) 09:57:48.58ID:oWRHhUZ6
  (\
  / / /)  
  / / ||   今日も元気だ暴飲暴食!今日は高槻やよい生誕祭だから大戸屋で豪遊してきた!
  \\/ /  もやし定食!ビール500㍑!これでたったの1450円!
   | | ttps://i.imgur.com/tBfOXvc.jpeg
  彡 ⌒ ミ
m9(´・ω・`)9mドーン!
2023/01/28(土) 10:40:45.85ID:eNfTTpeg
>>455
これは牛肉ですか?まあでもビールつきで1200円くらいかなあ
457名前は開発中のものです。
垢版 |
2023/01/28(土) 21:45:58.25ID:5cX97J6F
>>453
キャラクターコントロール使う場合でもRigidBodyに重力入れておけばいいのですね
2023/01/28(土) 23:14:36.57ID:TjcCxVMH
>>457
だからチュートリアルやれ
2023/01/28(土) 23:24:30.89ID:J47jJ/Ri
チュートリアルやる時間もないし面倒なのかもしれんけど、実際チュートリアルやるだけでスッキリ理解できることも多いよな
2023/01/28(土) 23:30:48.01ID:SYKizlQY
はるか昔ポーズを実装しようとして、あれを止めてこれを止めて再開時にあれを動かしてあUIまで止まってたうわああああ
と数時間しょうもない格闘したあとに

教科書「timescale=0で止まります」
俺「・・・

ということがあってから悩む前に素直に教科書を読むことにした
461名前は開発中のものです。
垢版 |
2023/01/28(土) 23:54:30.48ID:5cX97J6F
Unityちゃん動かすチュートリアルってどれ見ればいいですか?
ネットにたくさん転がって過ぎて何を参考にすればいいのかわからん…
あとキャラクターコントローラーが動かん…
.Move();が
デバッグしてみたらベクトルはちゃんと入力されてるようだが何故か動かない
2023/01/29(日) 00:51:32.93ID:4nSubdea
質問しつれいします
自作クラスを作って配列でインスタンス化するにはどうすればいいですか?
以下のように書いてもエラー出てしまいます。(CS0029:型(int.string)を'Test'に暗黙的に変換できません)

//自作のテストクラス
public class Test
{
    メンバ変数
public int a;
public string b;
//引数ありコンストラクタ
public Test(int add_a,string add_b)
{
a = add_a;
b = add_b;
}
}

void Start()
{
Test[] ttt = new Test[] { (1, "aa"),(2,"bb") };
}
2023/01/29(日) 08:35:37.04ID:hos66Gjd
暗黙的に変換出来ないなら明示的にやりなさい
2023/01/29(日) 10:05:01.74ID:mpae9t9e
質問させていただきます。

2Dのゲームで、ボタンをクリックするとキャンバスの表示設定を変えてメニュー画面を表示する仕様を作ったのですが
1回目のゲーム起動時の1回目のクリックのみメニュー表示に何秒も時間がかかってしまいます。
2回目以降のクリックではすぐにメニューが表示されますし、一度ゲームを落として再起動した後は1回目のクリックから遅延なしでメニューが表示できています。
メニュー画面は複数ありステージ選択のメニューのみ遅延が発生します。装備画面のメニューに表示の遅れは見られません。
遅延中に画面をクリックするとウィンドウの枠に「応答していません」と表示されますが時間が経つと正しくメニューが表示されます。
また、windowsではこの現象が発生しますがmacでは発生しません。
情報が少ないと思いますが、この原因について何かわかることがありましたら教えてもらえないでしょうか。
2023/01/29(日) 11:03:56.07ID:p/O3ATgl
>>462
(1, "aa")じゃ何のことかわからないよと言われてる
new Test(1, "aa")と書いてあげないと
2023/01/29(日) 12:14:13.09ID:4nSubdea
>>465
そこにもnewひつようだったのですね
ありがとうございます!!
2023/01/29(日) 12:25:33.53ID:Mj5v+GBG
2つ目の[ ]が要らんだけでは
2023/01/29(日) 17:05:54.77ID:lkXmMUS7
[]はいるだろう省略するならTestを省いてnew[]{};じゃないか
正直この程度のコンパイルエラーならVisual Studio先生が赤線引いてくれてるし横のヒントマーク(電球みたいなやつ)をクリックすればだいたい解決するので困ったらまず先生に聞いてみよう
2023/01/29(日) 18:12:07.38ID:hos66Gjd
おまえらキャンパスの表示設定変えた奴の質にも答えてやれよ


表示設定かえんなと
2023/01/29(日) 18:37:27.71ID:jE3DZQfI
>>464ですが、自己解決しました。
不要かもしれませんが一応原因を書いておきます。
macでの開発を行っていまして(macは関係ない?)、メニューボタンクリック時に表示させるテキストオブジェクトの中に
環境依存文字の「✖」が入っていることが原因でした。
「✖」から「×」にテキストを書き換えたら遅延なく処理が行えるようになりました。
ありがとうございました。
2023/01/29(日) 20:36:42.43ID:ZosE75Wt
よくそんな原因見つけられたなあ
unityのバグかなんかかな
2023/01/30(月) 13:28:55.92ID:yOtFy+77
UnityのLTSのバージョンって、
2021.3.16f1
2021.3.17f1
とか使っているウチにバージョン更新されてますけど
アップデートした方が良いのか基本しない方が良いのか迷います。
2021.3.11f1から3.16にした時はエラーが出たりしたので。
2023/01/30(月) 13:48:06.44ID:FBevz4SM
ソフトは都合が悪くない限りバージョンはアップしないのが鉄則なのだ!ワイはWindows3.1使ってる!m9(´・ω・`)どーん!
2023/01/30(月) 14:05:14.83ID:zJLNdXoM
>>472
先日fateがバージョンアップしたと話題になってた
しかしそのアップ後も随分古いやつだった
プロの意見としては「不必要にバージョンアップしたくない」ということなのだろう
2023/01/30(月) 14:48:23.12ID:uwiRFY3o
リリース前ならどうせテスト行うから気軽にバージョンアップするけど、
リリース後は明確なメリットが無い限りは再テストが大変なんでバージョンアップはしないな
2023/01/30(月) 15:37:36.24ID:eVLwL57Y
>>461
Q新聞見るのにどれ見ればいいですかね?
A新聞によって偏ってるので複数の新聞を読みましょう
2023/01/30(月) 15:56:52.44ID:wrPNqjmX
>>461
ユニティちゃんを動かすのネットじゃなくて本だと選択肢があんまりなくて掌田津耶乃の本でやった
2023/01/30(月) 16:47:16.54ID:yOtFy+77
>>474 475
なるほど、ありがとうございます。
479名前は開発中のものです。
垢版 |
2023/01/30(月) 17:06:18.38ID:KmOxJ5GN
>>476
>>477
なるほどありがとうございます
speedの数値が小さかったみたいで動かないようでした
2023/01/30(月) 18:31:44.10ID:MgAo1jzA
マギカクロスという有料アセットでボーンクロスという機能があるんですが
UNITY標準(無料)で同じようなアセットってありますか?
2023/01/30(月) 20:16:13.71ID:Kwi/6eO9
https://github.com/EZhex1991/EZSoftBone
2023/01/30(月) 22:38:53.76ID:6PWgA3vY
>>481
おお!ダメもとで質問したのですが似たのがあるとは!
なんかすごそうですね
ありがとうございます!
2023/01/31(火) 15:32:21.05ID:ZZBLrF50
今日も元気だ暴飲暴食!肉の厚みは1.1㍍!それ以上でも以下でもダメなんです! 彡 ⌒ ミ
焼肉W定食!ご飯大盛り!豚汁変更!ビール500㍑!これでたったの1520円!!m9(´・ω・`)ドーン!
ttps://i.imgur.com/qKPZyKJ.jpeg
2023/01/31(火) 18:05:30.10ID:72/YwTpW
>>483
吉野家とか松屋なら1200円くらいで済むでしょ
2023/01/31(火) 20:24:40.26ID:THTf6QUP
いちいちコピペに反応すんな~
2023/02/01(水) 01:22:27.59ID:ayZIbhWZ
jsonのセーブデータを作りたいんですが、
各所で読み書きにはstreamwriter/readerを使うのが一般的と書かれていますが公式ブログやodinのサンプル見るとFileクラス使ったりしてます
これらに違いや良し悪しはあるんでしょうか?
あと、Flush();Close();は何のためにあるんですか?
ご教授よろしくお願いします
2023/02/01(水) 02:40:51.74ID:jAnba6bt
veryanimation使い始めたんですが
両足をIKで固定して腰を上下させる屈伸みたいなアニメ作ったとき
キーフレームの位置では足が設定通りの位置にあるのに
キーフレームの間では足が地面にめり込んでしまいます
どうしてでしょうか
解決する方法ありますか
2023/02/01(水) 11:40:19.20ID:u/Si/5gZ
>>486
まずそれらの公式マニュアル読んでどんな機能なのか把握しなさい

その上でどう違うのか、不要なのか判断しなさいな
2023/02/01(水) 12:49:26.37ID:rAFKZYmi
>>487
FinalIKを導入する
2023/02/01(水) 13:24:33.72ID:mB8qyK60
>>489
買いました使ってみます
2023/02/01(水) 16:36:36.06ID:kxGjzMss
>>487
グラフで確認すれば何がおきているかわかる
2023/02/01(水) 17:06:07.18ID:1TtBNCll
veryanimationは軸がズレるからあんまり好きじゃない
でも他に良いのがないから仕方なく使ってる
493名前は開発中のものです。
垢版 |
2023/02/01(水) 17:44:35.91ID:afHxQ53Q
エフェクト VFXグラフで作りたいなぁとか思ったけど難しすぎる…
素直にアセット買ったほうが良いのでしょうか?
494名前は開発中のものです。
垢版 |
2023/02/03(金) 17:41:44.84ID:CSj+dcuK
すいません初心者で申し訳ないのですがどなたか助けてください
assetbundlebrowserがエラーになってしまいます。
このエラーが出ると他のアセットもビルドできなくなるのですが
何か解決方法ご存知の方いないでしょうか?

assetbundlebrowserの画面ではこのように表示されてます。
assets being pulled into this bunble due to dependecies are also
being pulled into another bunble.
this will cause duplication in memory
日本語訳してみたらこうでした
依存関係によってこのバンドルに引きずり込まれた資産は
別のバンドルにも引きずり込まれている。
この場合、メモリが重複してしまいます。

Unityの画面左下では
スクリプトエラーかコンパイルエラーって出るのですが
一度発生すると他のアセットもビルドできなくなるので関係ないのかもですが…

よろしくおねがいします。
495名前は開発中のものです。
垢版 |
2023/02/04(土) 13:00:11.89ID:b1nfJx8k
PUN2(Photon Unity Networking 2)で始めるオンラインゲーム開発入門というサイトの
Chapter01初期設定とチュートリアルを手順通りにやっています。
プレイヤー名を表示してみようの所で上手くいきません。

AvatarNameDisplayのスクリプトを追加して実行すると
NullReferenceException: Object reference not set to an instance of an object
AvatarNameDisplay.Start () (at Assets/AvatarNameDisplay.cs:10)が表示されます。

using Photon.Pun;
using TMPro;

// MonoBehaviourPunCallbacksを継承して、photonViewプロパティを使えるようにする
public class AvatarNameDisplay : MonoBehaviourPunCallbacks
{
private void Start() {
var nameLabel = GetComponent<TextMeshPro>();
// プレイヤー名とプレイヤーIDを表示する
nameLabel.text = $"{photonView.Owner.NickName}({photonView.OwnerActorNr})";

}
}

Unityは2021.3.14f1を使用しています。
496名前は開発中のものです。
垢版 |
2023/02/04(土) 13:26:26.10ID:b1nfJx8k
>>495です自己解決しました。
var nameLabel = GetComponent<TextMeshPro>();を
var nameLabel = GetComponent<TextMeshProUGUI>();に変更したらできました。
497名前は開発中のものです。
垢版 |
2023/02/04(土) 14:02:12.94ID:AwqChMS2
>>495
解決おめでとう。
操作できるようになると面白くなりますから頑張ってください。
498名前は開発中のものです。
垢版 |
2023/02/05(日) 01:12:35.84ID:fRjzhNI7
マテリアルのUVスクロールがシェーダーグラフのところではちゃんと動いているのにマテリアルに適応すると動かないのですがなぜでしょうか?
2023/02/05(日) 04:57:57.91ID:95eV/C5X
あるあるなのはゲームモードじゃないから
500名前は開発中のものです。
垢版 |
2023/02/05(日) 07:49:02.53ID:fRjzhNI7
>>499
ありがとうございます!
まさかゲームモードにしないと動かないとは…
参考にしたチュートリアルではモデルを触って動かしてたので普通にシーンモードでも動くものだと思ってました
2023/02/05(日) 14:08:45.54ID:AUtBMaqv
AnimatorControllerにPunch(右パンチ)というAnimationClipをセットした状態で
スクリプトからPunchの左右反転(左パンチ)を生成してAnimatorControllerに追加したいです
スクリプトでどう記述すればいいでしょうか?
2023/02/05(日) 14:16:13.58ID:95eV/C5X
>>500
なんかそういうモードあった気がするんだけど忘れた
シーンビューのタブのどこかにそういうものがあった気はする
2023/02/05(日) 18:39:55.13ID:Zv/Crlii
イベントハンドラでコルーチンを実行する例を時々見かけるんですが
コルーチンを実行中にそのイベントハンドラが呼び出された場合どうなるんでしょうか
コルーチンの続きが実行されるのでしょうか
それともイベントハンドラの最初から実行されるのでしょうか
504名前は開発中のものです。
垢版 |
2023/02/05(日) 21:11:03.55ID:fRjzhNI7
>>501
アニメーションを左右反転はUnityじゃできないんじゃないか?
Blenderとかで左右反転を別に作るとかしないと多分無理だと思う
2023/02/05(日) 21:12:33.49ID:BdoKxHMm
次々とコルーチンが増えてくだけじゃね
2023/02/05(日) 21:27:30.07ID:kWq0huke
StartCoroutineは実行するたびにコルーチンのインスタンス作るから、別タスクでコルーチンが同時実行されるだけ
2023/02/05(日) 21:37:35.34ID:AUtBMaqv
>>504
UNITYでアニメ反転出来ますよ。
アニメーションクリップのインスペクターでMirrorにチェック入れるだけです。
アニメクリップコピー>コピーしたのをmirrorにチェックで繰り返し
作っていけば左右両方のアニメ出来るんですが、数が多いと作業量も増えるので
スクリプトでできたら便利だなあと思ったんですよね。
508名前は開発中のものです。
垢版 |
2023/02/05(日) 21:49:45.71ID:F7wUAxrX
Quaternionの回転量に係数を掛けたQuaternionを取得したいんだけど、
Quaternion.ToAngleAxis と Quaternion.AngleAxis を経由せずに行う計算方法ない?

徐々に回転が遅くなるコードを書きたいんだけど、
毎フレームやるとGameObjectの数増やした時にチリツモで重くなる気がする
void Update()
{
transform.rotation *= inertiaRotation;
inertiaRotation.ToAngleAxis(out var angle, out var axis);
inertiaRotation = Quaternion.AngleAxis(angle * 0.95f, axis);
}
2023/02/06(月) 00:15:50.35ID:RyYXR6Yu
>>505-506
なるほど
なんとなく腑に落ちた気がします
ありがとうございます
2023/02/06(月) 08:01:36.32ID:ZOszYiF2
>>508
そこ以外でangleとaxisが変わらないなら、angleとaxisを変数に持っておけば、ToAngleAxis()は省ける
別の方法なら、Quaternion.RotateTowards()、Quaternion.Lerp()あたりも使えるかもしれないけど、AngleAxis()より軽いとは思えないな
Objectが大量にある時に重くなるのを軽くしたいなら、自分ならBurst、JobSystemを使うことを検討する
2023/02/06(月) 21:30:15.15ID:HbOQiUUp
壁に当たった時onCollisionEnter内で自身にrigidbody.addforceをして反射っぽい動きをする球を数千個複製して動かしてますが
数個に1個ほど衝突してもaddforceされてないぽい動きをする球が居ます
数千個もやってるせいかなと思ってるのですが負荷状況によってcollisionenterが呼ばれないもしくはaddforceが無視されるケースてあり得ます?
512名前は開発中のものです。
垢版 |
2023/02/07(火) 01:03:47.86ID:o2v+R+ZA
親オブジェクトのみtransform.Rotateで回転させることはできますか?

テキストはそのままでキャラクターを左右反転させたいです。
2023/02/07(火) 01:17:20.46ID:GDCX54Vt
合ってるかどうか自信ないので質問させてください。
1/60フレームごとに処理したいのですが、スクリプトは以下のやり方でいいんでしょうか?
よろしくお願いしますm(__)m

public float fps;

void Update()
{

fps+=Time.deltaTime;
if (fps > 1/60){fps = 0;}
if(fps==0){//何か処理}

}
514名前は開発中のものです。
垢版 |
2023/02/07(火) 17:52:49.84ID:K9Nn/Z4s
>>513
端数切り捨てだから正確な判定にはならんな
あと1/60は1f/60fにした方がいい
2023/02/07(火) 18:35:59.43ID:St9Ro8KS
変数fpsにゼロ入れたときにそのまま処理書いちゃあかんのん?
2023/02/07(火) 18:36:46.22ID:St9Ro8KS
>>512
その2つの上に空の親作っちゃあかんのん?
2023/02/07(火) 18:40:20.91ID:St9Ro8KS
>>511
こんなんあったけど
OnCollisionEnter、OnTriggerEnterが呼ばれない場合を検証
https://www.google.com/amp/s/dkrevel.com/oncollisionenter-not-working/%3famp=1
518513です
垢版 |
2023/02/07(火) 19:47:32.99ID:GDCX54Vt
>>514
なるほど 端数を切り捨てないように次の計算で足したりしたらいいってことでしょうか
なんとなくわかった気がします 回答ありがとうございます

>>515
あ、そのまま書いても行けましたね
ご指摘ありがとうございます
519名前は開発中のものです。
垢版 |
2023/02/07(火) 20:20:47.82ID:o2v+R+ZA
>>516ありがとうございました!
520名前は開発中のものです。
垢版 |
2023/02/07(火) 22:04:06.66ID:o2v+R+ZA
photonでprefabの変数を区別するにはどうすればいいでしょうか?
prefabに変数expを持たせているのですがプレイヤー1とプレイヤー2で区別できません。
ボタンをクリックしたプレイヤーのexpだけ1増えるようにしたいのですが、プレイヤー1、2両方とも増えてしまいます。
521名前は開発中のものです。
垢版 |
2023/02/07(火) 22:28:14.56ID:geFO2MFz
>>520
すみません、言ってる意味が不明です。読解力ないのかな。
staticにしてあるとかじゃなくて?
522名前は開発中のものです。
垢版 |
2023/02/07(火) 22:37:01.93ID:St9Ro8KS
photon Boltだと
「UserToken」があり接続してきた相手の名前、切断理由、コネクト状態を保持しています。

こんな情報あるんだけど、よく見て見て識別は可能だと思うよ
523名前は開発中のものです。
垢版 |
2023/02/07(火) 22:59:51.50ID:K9Nn/Z4s
>>518
0にするんじゃなくて1f/60fを引く仕組みに変えればいいだけ
524513です
垢版 |
2023/02/08(水) 00:28:39.06ID:4ssVwWu1
>>523
レスありがとうございます。
なるほど!引くっていうの思いつかなかったです。
こんなカンジであってますか?

void Update()
{
fps+=Time.deltaTime;
if (fps > 1f/60f){何か処理; fps =fps-1f/60f;}
}
2023/02/08(水) 00:36:06.93ID:9Oj7gslL
+=があるなら-=もできるんじゃね?
2023/02/08(水) 00:38:40.77ID:4ssVwWu1
>>525
たしかにそうでした。
ありがとうございます。
527名前は開発中のものです。
垢版 |
2023/02/08(水) 01:18:53.03ID:qdmrhq/e
>>521 >>522 staticが原因でした。解決できました。ありがとうございます。
528名前は開発中のものです。
垢版 |
2023/02/08(水) 07:33:22.17ID:rXLBSowm
>>524
俺はこれでいいと思う
2023/02/08(水) 08:20:49.61ID:0iqJoPqR
>>517
ありがとうございます!
記事読む限り懸念してたことは起こってなさそうです
原因わからんですが別のアプローチでどうにかしようと思います
2023/02/08(水) 13:39:50.90ID:4ssVwWu1
>>528
ありがとうございます。
これでいこうとおもいます。
531名前は開発中のものです。
垢版 |
2023/02/08(水) 14:43:47.38ID:rXLBSowm
>>530
とはいえもともとupdateは不確実なものだからそれをベースに
同期的なシステムを作ることはオススメしない
532名前は開発中のものです。
垢版 |
2023/02/08(水) 15:05:29.90ID:rXLBSowm
>>530
例えばプロファイルを眺めてれば分かるが
ゲーム実行中一気に負荷がかかって一瞬全ての処理が滞ることがある
updateも滞る
そうした時その君のシステムはまともに動作するのか?
甚だ疑問である
2023/02/08(水) 15:34:48.29ID:3OnP7aBQ
厳格に60分の1秒単位の処理する必要なんてあるんかな?
なんか不必要な処理な気がする
2023/02/08(水) 16:12:29.76ID:4ssVwWu1
>>532 >>533
後出しになっちゃってすみません。
具体的にやろうとしてるのは方向2回入れのダッシュの検出なんです。
1秒以内に方向が2回押されてる、かつその間にニュートラルが入ってる
ならダッシュ成功みたいなふうにやろうと考えてます。
入力方向がニュートラルなら0、右なら3でリストに入力された方向を追加していって
リストの中身を全部調べるやり方で作ろうとしています。
ただこのやりかただとPCの処理速度によってリストに追加するタイミングも違ってくるのではと思い、fpsで管理しようと思った次第です。
他におすすめやり方とかあれば教えてほしいですm(__)m

//方向の履歴リスト(ダッシュ検出用)
public List<int> histry;
Start{
//リスト初期化
histry = new List<int>();
//方向0を60個リストに追加(60で1秒とする)
for(int i = 0; i < 60; i++)
{histry.Add(0);}
}
Update{
//履歴リスト更新(追加と1番最初を削除)
histry.Add(押された入力方向番号);
histry.RemoveAt(0);
//履歴チェックメソッド実行(これから作る予定)
Check();
}
535名前は開発中のものです。
垢版 |
2023/02/08(水) 16:34:58.52ID:rXLBSowm
>>534
フレームで管理する必要ない
マシンのスペック差はTimi.deltatimeでクッションされてるから
普通にfloat型の変数で管理できる
2023/02/08(水) 16:54:21.15ID:4ssVwWu1
>>535
すみません。
自分にはちょっと難しくて話についていけてないです。
よろしければ詳しく教えていただけますか?
537名前は開発中のものです。
垢版 |
2023/02/08(水) 16:55:19.15ID:rXLBSowm
>>534
それと入力検知で60個ものリストを使い、毎フレーム付け外しするとか無駄の極み
538名前は開発中のものです。
垢版 |
2023/02/08(水) 16:59:32.20ID:rXLBSowm
>>536
要するに1秒ってのを測ればいいだけだろ
float型変数でjikanってのを作った場合
jikan+=Time.deltatime;
でjikanをカウントして1秒後にチェックすればいいだけ
マシンスペックによってTime.deltatimeの中身が変わるから
それで差は吸収される
2023/02/08(水) 18:02:01.06ID:4ssVwWu1
>>538
くわしくありがとうございます。
floatで時間計測は理解できるのですが、1秒以内にダッシュ検出はどうしたらいいんでしょうか?
>入力検知で60個ものリストを使い、毎フレーム付け外しするとか無駄の極み
リスト使わなくてもできるってことでしょうか?
スマートにやる方法をおしえていただきたいです。
2023/02/08(水) 18:02:34.92ID:9Oj7gslL
1秒後というのはどう計測するんだい?
マシンスペックに依存しちゃうと測れなくね?

開始したらコルーチンでも動かすんか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況