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

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
2020/10/06(火) 00:05:10.13ID:kJJOnsRR
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートは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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
関連スレ
【3Dゲームエンジン】Unity質問スレッド36
https://mevius.5ch.net/test/read.cgi/gamedev/1528372763/
【ゲームエンジン】Unity初心者質問スレBuild1
https://mevius.5ch.net/test/read.cgi/gamedev/1528249519/

前スレ
https://mevius.5ch.net/test/read.cgi/gamedev/1530167116/
2020/12/22(火) 15:49:32.62ID:4qLbBlp6
Macbook m1使ってる方、ゲームをプレイしたときに画面がちらつきませんか?
2020/12/22(火) 16:39:52.70ID:+B5E/2uz
>>641
そういうことはまずレンダリングを見直してからにしよう
バッチングされてなくてドローコール増えまくってないかとか
2020/12/22(火) 20:08:29.72ID:AwehWVf3
void Update の中でシーン跨ぎ等のタイミングで一度だけ実行する初期化処理をしているんですが
数が増えてきたので初期化メソッドの中にまとめて放り込んで整理したところ
ゲーム自体の挙動は問題ないものの下記のエラーが出るようになりました
NullReferenceException: Object reference not set to an instance of an object

デバッグで確認したところ初期化メソッドを噛ませるとメインカメラのオブジェクトを取得して
メインカメラの座標をvector3に放り込む部分でvector3の値が1フレームだけ初期値(0,0,0)
になってしまうことが原因だと分かりました
最悪初期化メソッドを開けばいいだけなんですけど即座に値を反映させる方法はないでしょうか?
2020/12/22(火) 20:16:35.47ID:Mm5vx8Wm
public camera
んで、インスペクタで放り込んでおく。
だめかな?
2020/12/22(火) 20:54:16.75ID:Ga9TJohP
シーンを跨いでって事はアンロードされればcameraがnullになるからじゃね?
マネージャはDontDestroyOnLoadで残るなら当然そうなるよね

マネージャ側はUpdateでcameraがnullなら実行しないようにしておいて
マネージャにcameraをGetCameraとか受け取るメソッドを付けとく
ロードされたシーンからAwakeでマネージャがあったらGetCameraを
呼び出してCameraを渡す、それかカメラを探させるようにすればいいだけじゃね?
2020/12/22(火) 20:56:23.10ID:Ki9qQTw+
一時的にエラーを無視するようにしたら良いんじゃね
原因が分かってて影響もないならそれで十分
2020/12/22(火) 20:58:42.60ID:AwehWVf3
レスありがとうございます
すみません。初心者でインスペクタで放り込む方法がわからないんですが
いま自分が書いてる処理は下記のとおりです

if (mainCam == null)
{
mainCam = GameObject.Find("Main Camera");
return;
}
if (boolCam == false)
{
camPos = mainCam.transform.position;
boolCam = true;
return;
}

これを void Update でそのまま走らせると即座に反映されるんですが
void Initialize() を作って中にそのまま放り込んだあと同じ位置に置き換えると最初の1フレームが(0,0,0)になります
同じ処理をプレイヤー等の他のオブジェクトにも施してるんですが
メインカメラだけが1フレームの初期化をはさんでしまいます
2020/12/22(火) 21:05:37.04ID:AwehWVf3
一応上記の書き方の場合でシーンを跨ぐときには mainCam = null の処理を挟むようにしてます
2020/12/22(火) 21:06:04.98ID:AwehWVf3
マネージャはDontDestroyOnLoadです
2020/12/22(火) 21:22:50.02ID:Ga9TJohP
Camera mainCam;
Vector3 camPos;
void Start()
{
GetCam();
}
void Update()
{
if(mainCam != null)
{
camPos = mainCam.transform.position;
}
}
void GetCam()
{
mainCam = Camera.main;
}

例えばこうするとか? 試してないけどこんな感じじゃね?
StartでmainCam = Camera.main;を何度も書くのもあれだからメソッドにしたけど
外からGetCam()を呼べばカメラのタグにMainCameraがついてればこれで取れる筈
2020/12/22(火) 21:31:47.16ID:Ga9TJohP
privateになるからpublic void GetCam(){}かな
2020/12/22(火) 21:51:40.60ID:AwehWVf3
前に実験して DontDestroyOnLoad だと void Start のなかを生成したタイミングの一度しか
通ってくれなかったんで void Update で初期化するようにしてたんですが
上記のやり方でも試してみたところやっぱり余分なフレームを挟んでしまうみたいです

あといろいろいじってみて分かったのがメソッド噛ませたときに1フレーム遅れるのは
シーン跨ぎのタイミングでは起こらずゲーム起動時のタイミングだけかもです

現状影響がないので様子見ながら進めることにします
回答いただいた方々ありがとうございました
2020/12/22(火) 22:15:16.46ID:AwehWVf3
すいません。自己解決しました!
return; が悪さしてたみたいです!
皆さんお騒がせしました・・・
2020/12/22(火) 22:32:12.67ID:Ga9TJohP
どんまい

想定外は意識した外側からやって来るから仕方ないw
よくある事さ
2020/12/23(水) 14:27:43.03ID:kaeZYjq7
アセットを買えばスクリプトからも解放されますよ!
2020/12/23(水) 21:16:04.12ID:4aje04Q2
unityで3Dゲーム作成中です
コライダをつけたくてAdd Componentを押したのですが、
何も表示されません。
Physicsってどうやって表示させればいいのでしょう?
2020/12/23(水) 21:18:56.81ID:4aje04Q2
>>660
すいません
自己解決しました
662名前は開発中のものです。
垢版 |
2020/12/23(水) 22:16:38.52ID:UHC+YLGD
Rayを飛ばしてRayが命中した箇所に弾を飛ばし、空などに当たった場合には飛ばしたRayのビームの終端座標に弾を飛ばすようにしたいのですが、
終端座標を取得する式が分かりません。
どういう式を立てればいいでしょうか


Vector3 center = new Vector3(Screen.width / 2, Screen.height / 2, 100f);//光線発射ポイント
Ray ray = Camera.main.ScreenPointToRay(center);//光線本体設定?
RaycastHit hit;
Vector3 hassya_houkou;//弾の目標地点
Vector3 hassya_point = cameraForward + transform.position+ new Vector3(0f, 1f, 0f);//弾の出現位置

if (Physics.Raycast(ray, out hit, 200.0f))//bool判定
{

hassya_houkou = hit.point - hassya_point;

Debug.DrawRay(ray.origin, ray.direction * 20, Color.red, 0.01f);

}
else
{
//hit しなかった場合
//終端座標位置を取得

hassya_houkou = //????? 不明点

}
663名前は開発中のものです。
垢版 |
2020/12/23(水) 22:32:31.26ID:UHC+YLGD
>>662
すみません、自己解決しました。
hassya_houkou = (ray.direction * 200f)-hassya_point;
でいけました
664名前は開発中のものです。
垢版 |
2020/12/23(水) 23:10:37.47ID:UHC+YLGD
>>663
すみません、一応動作には問題ないのですが上記の式は間違っていました。
2020/12/23(水) 23:23:26.37ID:aS3j2YPy
transform.positon + direction * 200fじゃね?
666名前は開発中のものです。
垢版 |
2020/12/23(水) 23:51:24.24ID:UHC+YLGD
>>665
ありがとうございます。
お陰様で上手く行きました
2020/12/23(水) 23:58:14.88ID:aS3j2YPy
順番は関係ないみたいだから、dir*200f+posでも変わらないんだね

target-myselfがdirectionになるのは自分自身を引いたら
オフセットがなくなって、原点から向きを表すVectorになるからっぽいな
向きも位置もVector3で同じじゃねーかと思ってたけどよくよく考えたらそうだよな

だから向きVectorにオフセット座標を足すとそうなるっちゅー的な何かだと思われる
668名前は開発中のものです。
垢版 |
2020/12/24(木) 09:41:57.70ID:2JHPFl3t
Unity3D Export.jsxって何か分かる?
2020/12/24(木) 12:31:48.21ID:AvPp9LC1
購入記録がないアセットをサーバに送信してるんだよ
2020/12/24(木) 14:43:44.59ID:Dh2wDM9H
ここで聞いても意味ないとは思うんだけど、問い合わせ先も無いから皆さんの見解を聞きたいです。

自分のアプリにadmobでリワードやインタースティシャル広告を掲載して、自分でストアから落として遊んだら(一般プレイヤーと同じ頻度で広告が出る)規約違反ですか?

開発者が自分のアプリで遊ぶ時って開発用の広告カットVerを用意してるんでしょうか?
2020/12/24(木) 14:53:02.84ID:y1MLA8Sf
広告は絶滅するか俺の目に入らない場所にのみ存在することを許されると思っている
2020/12/24(木) 14:59:52.32ID:/NBsHCN6
無効なクリックとして扱われないよう、テスト広告(Android、iOS 対応)をご利用ください。
2020/12/24(木) 16:17:44.52ID:Dh2wDM9H
>>672
開発中はそうしますけどね。
家族がダウンロードしても危険だし正確なガイドラインを出してもらいたい所です。
2020/12/24(木) 18:30:02.85ID:mkdxKLwq
ちょっと難しい質問なんですけど、
ヒエラルキーに日本語を使うのは問題無いと思っていいんですかね?
新しいシーンを作ったときデフォルトのライトが日本語名で配置されてたので気になりました
675名前は開発中のものです。
垢版 |
2020/12/24(木) 18:55:41.40ID:OoHRQhil
基本的にこの手のシステムでは問題ないって言われても日本語は使わない
2020/12/24(木) 19:03:08.25ID:y1MLA8Sf
むしろ日本語しか使わない
ゴミツールを早期に検出して除去出来るメリットもある
2020/12/24(木) 20:21:04.54ID:tlfM/Gms
原因不明のリセットバグに見舞われたがプロジェクト名に()が入ってただけで
バグるような糞システムを信用するなど言語道断
2020/12/24(木) 21:34:03.75ID:YZbWIqKw
俺も問題無いと言われても日本語は使わないねー
コメントも英語で書くわ
2020/12/24(木) 22:24:00.58ID:ScDEWPff
俺はローマ字で書く派
2020/12/24(木) 22:50:55.45ID:2MonGw4T
中学生レベルの英語の読み書き出来ない奴って義務教育受けたの?
2020/12/24(木) 22:55:49.86ID:FGLGJ1bN
>>680
中学校レベルの英語の読み書きが完璧なら
日本のほとんどの大学の入試英語はパスできるって知ってた?
×中学生レベルの英語の読み書き出来ない奴って義務教育受けたの?
○小学生レベルの英語の読み書き出来ない奴って義務教育受けたの?
2020/12/24(木) 23:19:25.79ID:2MonGw4T
小学生は最高だぜ!(困惑
683名前は開発中のものです。
垢版 |
2020/12/25(金) 02:40:45.37ID:sp+7DRUU
バグの原因になり得るのと情報は英語の方が多いのと誤訳があるからな…
684名前は開発中のものです。
垢版 |
2020/12/25(金) 16:24:05.74ID:5YWagxgL
VR内で剣と敵が衝突した時の吸収運動?みたいなものってfinal IKで実装できるものでしょうか?
まったく的外れな質問でしたらごめんなさい。
https://imgur.com/a/gb5QLL7.jpg
2020/12/25(金) 16:27:54.28ID:lHRKukBk
>>681
「レベル」て意味わかる?それで「ほとんど」とか
英語どころか日本語すら知らない子だね
686名前は開発中のものです。
垢版 |
2020/12/25(金) 17:05:42.33ID:9qCJpBng
Rayをデフォルトのキューブの正面方向に飛ばしたいのですが、このスクリプトですと、-y方向と+x方向に若干ずれてしまいます。

原因と修正方法を教えて下さい。

Ray ray = new Ray(transform.position, transform.TransformDirection(Vector3.forward));
//    ↑ transform.forwardと同一?

//Rayが当たったオブジェクトの情報を入れる箱
RaycastHit hit;

//Rayの飛ばせる距離
int distance = 100;

//Rayの可視化 ↓Rayの原点    ↓Rayの方向         ↓Rayの色
Debug.DrawLine(ray.origin, ray.direction * distance, Color.red);

//もしRayにオブジェクトが衝突したら
// ↓Ray ↓Rayが当たったオブジェクト ↓距離
if (Physics.Raycast(ray, out hit, distance))
{
//Rayが当たったオブジェクトのtagがPlayerだったら
if (hit.collider.tag == "Player")
Debug.Log("RayがPlayerに当たった");
}
2020/12/25(金) 17:14:02.24ID:81VGurLi
>>685
中学校といってもピンキリ、中学生もピンキリなのだよ
君にそのレベルが達成できていないからといって勝手にレベル下げちゃダメ
指導要領はお題目だけはレベル高いのよ、知らないんだろうけど
大学入試の経験が無い人なのかな?
2020/12/25(金) 18:07:07.96ID:NR1hoH4y
>>686
命令通りに正常に動作してる
リファレンス見たら分かるよ
2020/12/25(金) 21:32:35.93ID:aVUAZaW9
>>686
そのスクリプトをアタッチしてるオブジェクトの座標がキューブとズレてない?
2020/12/25(金) 21:57:30.51ID:BEcacWjh
よく考えてみな
方向ベクトル1,0,1をn倍しても終点にはならないだろ
ベクトルの発射地点をX1の時とX-1の時、終点はどこか答えてみ?
691名前は開発中のものです。
垢版 |
2020/12/25(金) 22:28:43.41ID:9qCJpBng
みなさん、ありがとうございます。
Ray ray = new Ray(this.gameObject.transform.position, this.gameObject.transform.forward+transform.position);
// ↑ transform.forwardと同一?


RaycastHit hit;


int distance = 1000;
Debug.DrawLine(ray.origin, transform.forward * distance+transform.position, Color.red);
//Rayの可視化 ↓Rayの原点    ↓Rayの方向         ↓Rayの色

でオブジェクトの正面にRayを撃つことが出来ました
2020/12/25(金) 23:38:29.41ID:TEwfJK/L
2Dオブジェクトのスプライトの透明度を変数に入れたいです。

spRenderer = GetComponent<SpriteRenderer>();
//これでSpriteRendererコンポーネントをspRenderer変数に入れることができました。
var color = spRenderer.color;
//これでSpriteRendererコンポーネントのカラーをcolor変数に入れることが出来ました。
float alpha = color.a
//これでカラーのアルファ(透明度)をalpha変数に入れることが出来ました。


アルファ(透明度)を変数に入れるコードを一行で続けて書けたと思うのですがどう書けばいいでしょうか?
2020/12/26(土) 01:10:31.86ID:ejC2iCK0
SpriteRenderのcolorはプロパティで、.aはフィールド
アクセサのない隠蔽されたフィールドを直接書き換える方法はないよ
694692
垢版 |
2020/12/26(土) 01:43:23.78ID:a7znPc5w
>>693
できるものだと思い込んでいました。
どうも有難うございます。
695名前は開発中のものです。
垢版 |
2020/12/26(土) 09:46:57.83ID:C5HNS3as
mayaLTでエクスポートしたら、オブジェクトにスムージングがかかりません。
エクスポート設定の部分でスムージングにチェックを入れてもスムージングが
かからないんです。UNITY側でどうやったらスムージングをかけられるんでしょ
うか。教えてください。お願いします。
2020/12/26(土) 12:20:23.05ID:/0BHOP2o
LTの故障だからオートデスクに電話しなよw
2020/12/26(土) 14:42:45.98ID:p94gRknu
Maya indieとMayaLTって料金一緒なんだな
同じ値段でフル機能でサポートも同じなのに何で切り替えないの?
2020/12/26(土) 14:46:56.53ID:Qn66So4c
他のDCCツールでどのように表示されるかは切り分けの役に立つ
699名前は開発中のものです。
垢版 |
2020/12/26(土) 18:25:11.68ID:0Y8vJLvW
UNITY初心者の質問ってここであってる?
2020/12/26(土) 18:59:15.64ID:WP3EWq8g
そんなものはない
701名前は開発中のものです。
垢版 |
2020/12/26(土) 19:28:42.10ID:B1MlrA33
UNITYやプログラムできる人ならすぐに答えが分かる質問だと思うので助けてほしいです
2020/12/26(土) 20:21:38.52ID:Cl22MmAk
やだ
2020/12/26(土) 20:24:02.70ID:Qn66So4c
取り敢えず書いてみればいい
ノイズは気にするな
704名前は開発中のものです。
垢版 |
2020/12/26(土) 23:33:30.31ID:WnYVdPXe
Unityアセットストアでセールやってるみたいだけど、これは入れとけってやつある?
ちなみにまだUnity開発経験はないド素人

プログラムは書ける
2020/12/26(土) 23:41:09.87ID:iWHuXuXV
2019から2020にアップデートしたところ、
シーンビューにてUIパーツをクリックして選択できなくなってしまいました
スプライトはクリックで絶対できます

これは仕様が変わってしまったのでしょうか
それとも何か設定がありますか?
2020/12/26(土) 23:56:40.41ID:0SSa4DaD
パッと見て自分で同じ事が出来るかどうか分からないプログラマーって
凄いんじゃないかな?
2020/12/27(日) 00:23:47.94ID:vtKev72a
>>704
ど素人は、買う必要なし。
2020/12/27(日) 01:22:14.33ID:ycC9jHHL
定番で使えるアセットとかあるんだったら安いうちに買っておきたいなーと思ってね
709名前は開発中のものです。
垢版 |
2020/12/27(日) 01:26:17.02ID:ArapAxR6
用途次第だからなー
急いで買う必要ないと思うよ

便利アセット2020とかでようつべちて何かピンときたら変えば?
2020/12/27(日) 08:30:15.19ID:7Wl8oBsc
プログラム出来るならとりあえず色々作ってみて自分で出来ないと分かったものだけ買うようにするといいよ
後にUEで開発することになって買ったアセットが勿体ないことになるかもしれんし
2020/12/27(日) 08:39:48.33ID:LqZwu9sU
50万くらい突っ込んでからUEに移行して自らの愚行を祝ってやれ
面白いと思うよ当事者以外は
2020/12/27(日) 12:15:28.22ID:y+rvzfij
自分でスクリプト書くならodinはオススメ。
2020/12/27(日) 14:36:40.34ID:QVVlS/Sg
アンクル50万って妖怪性子の嘘松でしょ
あいつがアセットに50万も使えるわけないじゃん
金があれば売れない自分のデジ同人を自己買いするのが性子だよ
あいつ自作のクオリティを上げるためには一円も出さない奴だから
2020/12/27(日) 14:58:45.60ID:TaKrshX3
そんなにアセット買い込んだなら一個一個レビューして動画上げてほしいな
日本語で丁寧に解説してくれれば助かるわ 再生されればお金貰えるかもよ
2020/12/27(日) 15:11:33.32ID:VVveW7VR
オブジェクトにスプリクトとかコライダとか貼り付けて
Gameビューの再生ボタンを押すと貼り付けたものが消えてしまうという現象が多々起きるのですが、
貼り付けたあとに確定させるみたいな作業が必要なのですか?
2020/12/27(日) 15:38:31.31ID:NnZuKdq2
ヒント:ニートに支払い能力などない
2020/12/27(日) 15:59:59.61ID:QVVlS/Sg
妖怪性子はアラフィフだからニートじゃないよ
しかも自称創作一筋の自称売れっ子作家さんだしねぇ

50万は嘘松だけど500円くらいは使ったんじゃないの
718名前は開発中のものです。
垢版 |
2020/12/27(日) 19:21:47.17ID:MZ+5/VJK
おじさんと認定してる謎のBBAは別人って自分で言っちゃってんじゃん
馬鹿なの?
2020/12/27(日) 22:01:43.07ID:QVVlS/Sg
はいアウト
性子の性別が女だなんてだーれも言ってないよ
2020/12/27(日) 22:05:06.61ID:LvUJWFkI
やめなよ
馬鹿恥性子は構って欲しくてわざとガバガバおまんこレスしてるんだからさ
なお未使用の模様
2020/12/27(日) 22:09:32.64ID:tpiJZkXk
ネットで叩かれて落ち込んだら実家にビデオ通話するアラフィフのおばちゃんをいじめないであげて!!!
既婚子持ちの姉を罵倒して自分から出て行ったくせにネットで叩かれたら実家に泣きつくかわいそうなおばちゃんをいじめないでくださーい!!!
722名前は開発中のものです。
垢版 |
2020/12/27(日) 22:33:56.65ID:S/Ob/utd
聖地巡礼まったなしの第二のイワマン
偽装に必死過ぎて草
723名前は開発中のものです。
垢版 |
2020/12/28(月) 01:15:39.02ID:2d+yZQ9t
iOSのビルド用にiMac買おうか迷ってるんだけどiMacの2012モデル中古で買っても大丈夫だと思う?
2020/12/28(月) 02:01:22.00ID:jNZ+RohR
UIの枠をスクリプトから動的に表示しようとしています
動的にスプライトを取得してオブジェクトを表示させることまでは出来ました
ただインスペクタの Image Type の項目をスクリプトから指定する書き方が分かりません

Image uiImage = ui[0].GetComponent<Image>();
uiImage.type =   ;

画像タイプを sliced に指定したいのですが最後の部分はどう書けばいいのでしょうか?
2020/12/28(月) 03:22:46.88ID:Es/w/AyE
>>724
https://docs.unity3d.com/ja/2018.4/ScriptReference/Type.html
726名前は開発中のものです。
垢版 |
2020/12/28(月) 09:18:51.08ID:8pJAyzqf
VRゲーム作ってる過程で問題にぶつかって日本語のサイト検索しまくっても全然ヒットしなかったのに英語で検索掛けたら一発で拍子抜けした。
2020/12/28(月) 09:34:04.98ID:jNZ+RohR
記事も消えてるのと調べてもちょっとわからなかったんで
プレハブの段階で sliced にして進めていきます
レスありがとうございました
728名前は開発中のものです。
垢版 |
2020/12/28(月) 10:36:15.79ID:8pJAyzqf
>>727
Image.type.slicedとかでできないすか?
2020/12/28(月) 15:33:48.65ID:jNZ+RohR
なんかできそうでできないんですよね
参照できないみたいなエラーが出てたんで元々そういうもんなのかもと思って進めていきます
2020/12/28(月) 16:04:14.45ID:Et/H3HPL
また英語アレルギーかwww 内容読めよ愚か者
731名前は開発中のものです。
垢版 |
2020/12/28(月) 16:17:26.43ID:B1sNozbS
>>726
そもそも日本語で検索するのダメでは
732名前は開発中のものです。
垢版 |
2020/12/28(月) 16:18:03.09ID:B1sNozbS
つっても最近は中国語の情報も引っかかって、そっちまで手を広げるのはきついっす
2020/12/28(月) 19:21:17.16ID:grLWaB1Y
4方向だけの動作を組んでいるのですが、
斜め入力(同時押しの時)に優先順位が右、左、上、下の順の処理になってしまいます。
例えば右に入力中に右上入力されたら上を優先するみたいなことがやりたいです。
最後に押された方向キーを優先して処理するにはどうすればいいでしょうか?

public class test : MonoBehaviour
{
Vector2 pos;
// Start is called before the first frame update
void Start()
{
pos = transform.position;
}

// Update is called once per frame
void Update()
{
if (Input.GetKey("right")){ pos.x += 0.1f;}
else if (Input.GetKey("left")){pos.x -= 0.1f;}
else if (Input.GetKey("up")){pos.y += 0.1f;}
else if(Input.GetKey("down")){pos.y -= 0.1f;}
transform.position = pos;
}
}
2020/12/28(月) 21:42:40.10ID:uG9gWH5k
elseいらない
そもそも現在位置をposに入れる必要ない
加算代入すればいいだけ
735名前は開発中のものです。
垢版 |
2020/12/28(月) 23:59:52.98ID:2d+yZQ9t
PUN2のカスタムプロパティでbool変数の同期しようとしたんですがうまくいきませんでした。
そもそもbool変数はカスタムプロパティで同期できますか?

ルーム参加者が全員準備完了ボタン押したら、マスタークライアントにゲーム開始ボタン表示させる。
みたいなことがやりたかったのですが
2020/12/29(火) 00:04:44.21ID:4xavldHn
>>734
else抜いたら斜めに動くだろ
的外れ
>>733
望みの動作をするにはGetKeyDownでリストの末尾に追加してGetKeyUpで削除するみたいな感じにするかな。ちょっと面倒
2020/12/29(火) 00:09:39.54ID:0sEa3BFI
DontDestroyOnLoadを使用しBGM制御用スクリプトを作りました
シーン遷移時にBGMが途切れないようにしたり特定のシーンのみ別BGMにするためのスクリプトです
BGMの切り替え自体はうまくいったのでシーン遷移時のボタン音もこのスクリプトで鳴らすことにしました

private void OnActiveSceneChanged(Scene prevScene, Scene nextScene)
{
// シーン遷移時にボタン音を鳴らす
audioSource.PlayOneShot(buttonSE);

// 遷移先シーン名をチェック
if (nextScene.name == "StageSelectScene") { BgmNo = 1; }
else if (nextScene.name == "HowToPlay") { BgmNo = 1; }
else if (nextScene.name == "GameScene") { BgmNo = 2; }
else { BgmNo = 1; }

if (BgmNo != nowPlayBgm)
{
ChangeBGM();
}
}
2020/12/29(火) 00:10:45.81ID:0sEa3BFI
続きです

// BGMを変更する
public void ChangeBGM()
{
// 再生中のBGMを停止
if (nowPlayBgm == 2)
{
AudioSource audio = BgmSource2;
audio.Stop();
}
else {
AudioSource audio = BgmSource1;
audio.Stop();
}

// 新規BGMに切り替え
if (BgmNo == 2)
{
AudioSource audio = BgmSource2;
audio.Play();
}
else
{
AudioSource audio = BgmSource1;
audio.Play();
}

// BGM再生用変数を変更
nowPlayBgm = BgmNo;
}
2020/12/29(火) 00:11:25.71ID:0sEa3BFI
質問なのですが

BgmNo1からBgmNo2に切り替えるときにボタン音が鳴りません
BgmNo2からBgmNo1に切り替えるときやBgmNo1のままの場合は動作します

else if (nextScene.name == "HowToPlay") { BgmNo = 2; }

に変更するとボタン音が鳴らなくなったのでGameSceneの問題ではないと思います
スクリプトをどのように直せば全てのシーン遷移時にボタン音が鳴るようになるのでしょうか
ご存知の方がいらっしゃれば教えていただけると幸いです
ちなみにGameSceneは複数ありBgmNoはもっと増える予定です
2020/12/29(火) 00:15:29.24ID:jQ6IQAhm
車輪の再発明しなくてもチュートリアルにあるじゃん
ローグライク何とかっての
2020/12/29(火) 01:26:14.08ID:92itttUq
>>735
もちろんできますよ。
742名前は開発中のものです。
垢版 |
2020/12/29(火) 01:35:37.52ID:o9I3nYok
>>741
ありがとうございます。
もしかして型の変換とか必要ですか?
2020/12/29(火) 01:35:43.37ID:92itttUq
>>733
最後に押したキーを算出する方法を求めましょうか。
例えば、押している間は+カウント。
あとはキーカウントが0以外で1番少ないのがそれになります。
2020/12/29(火) 12:14:33.19ID:716CyH+z
2019と2020でアセットのインストール方法が変わってるんだね
初心者だけど入門本進めてるときに気づいたがそこまでハードルは高くなかった
それ以外の箇所も変わってたらついていけない
2020/12/29(火) 12:40:14.51ID:M+VN6PR8
OnTriggerEnter
で衝突判定をしたいのですが、オブジェクトがぶつかってもこの関数が呼び出されません

visual studioでは
OnTriggerEnjoyの下に波線が惹かれた状態で、
マウスを波線に持ってくと、「ローカル変数 Ontriggerは宣言されていますが、一度使用されませんと表示されます」

一体何がいけないのでしょう?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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