Notifications
bg
かんぴょう
Prashalt - Student
Japan
0
Likes
1
Follower
0
Connections
All
Articles0
Games0
Showcases0
Column0
Jobs0
こんにちは。いつもありがとうございます。
今回、JsonUtilityを利用して以下の自作クラスをJsonファイルとして保存しようと思いました。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[Serializable]
public class Equipment
{
public string weponName = "null";
public EquipmentType type = new EquipmentType();
public int plusHp = 0;
public int plusMp = 0;
public int plusPower = 0;
public int plusDefence = 0;
public int plusQuciness = 0;
public int plusMagicPower = 0;
}

ですが、InvalidOperationException: The stream is currently in use by a previous operation on the stream.というエラーを吐いて停止してしまいます。
エラーの内容なのですが、重複して書き込んでいるという内容だと思いますが

using (var Json = new StreamWriter("Assets/Json/Players/UnityPlayer-1.json"))
{
Json.WriteAsync(JsonUtility.ToJson(Player1, true));
}

というようにちゃんと一度しか書き込んでいません。
また、書き込んでいるクラスはPlayerStatusという別のクラスでそこで上記のクラスの変数を定義して使用しています。さらに、PlayerStatusで自作クラスの変数を定義しない(コメントアウト)とエラーは出ません。

自作クラスはどのように制作すれば正常に書き込めるようになるのでしょうか?
ご教授よろしくお願いいたします。

4 days ago
Reply@Yuji YASUHARAおそらく WriteAsync を使っているせいと思います。 StreamWriterのWriteAsyncは「別スレッドで書き込みを開始してくれ」という要求を発行するのみで、実際に書き込みが完了しているのは別途待つプログラムを書く必要があります。そのかわり書き込み(=とても時間がかかる可能性がある)が完了するまでに他のプログラムを動作させておける利点があるためこんな関数が用意されているんですが、それは高度な利用法とも言えます。 なので、まずは Write を使用してみましょう。こちらは「書き込みが完了するまで停止」してくれます。@tamtamさんが紹介している例もWriteを使っていますね。
@tamtam さんとYujiさんのおかげで無事解決しました。 また、何かありましたらご質問させて頂きますので、その際はどうぞよろしくお願い致します。
Yuji YASUHARA
Field Engineer
6 days ago
おそらく WriteAsync を使っているせいと思います。 StreamWriterのWriteAsyncは「別スレッドで書き込みを開始してくれ」という要求を発行するのみで、実際に書き込みが完了しているのは別途待つプログラムを書く必要があります。そのかわり書き込み(=とても時間がかかる可能性がある)が完了するまでに他のプログラムを動作させておける利点があるためこんな関数が用意されているんですが、それは高度な利用法とも言えます。 なので、まずは Write を使用してみましょう。こちらは「書き込みが完了するまで停止」してくれます。@tamtamさんが紹介している例もWriteを使っていますね。
tamtam
Community Evangelist
6 days ago
今回参考にしたページはあるでしょうか? 特に参考にしたページなどが無ければ、このあたりのページを参考にJSONファイルなどの読み込み・書き込みを試してみるのはどうでしょうか? https://www.sejuku.net/blog/50432 https://qiita.com/2dgames_jp/items/3c232b37d20ce12edb07 https://moon-bear.com/2019/03/23/%E3%80%90unity%E3%80%91json%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%BB%E3%83%BC%E3%83%96%E3%83%BB%E3%83%AD%E3%83%BC%E3%83%89%E5%87%A6%E7%90%86/
お久しぶりです。
また、技術的な話ではないのですが
私の学校の部活動でUnityを使用しよう思いました。しかし、学校の環境ではログイン(サインイン)することが出来ません。

色々調べたのですが、大昔はサインインをスキップ出来たという情報しか出てきません。
現在は、スキップすることは出来ないのでしょうか?
恐らく必須になったのだと思いますが…
ご教授お願い致します。

17 days ago
Reply@ゆに丸1号こちらこそ言葉足らずですみません。マニュアルアクティベーションは設定変更ができないPC(今回の場合学校のPC)の他に、普通にウェブに繋がるPC(家にあるPCなど)があれば、設定変更できないPCはオフラインのままでも認証ができる方法です。 その方法ならログインはいらないはずですが、アセットストアは使えないのでアセットストアが使いたい場合はマニュアルアクティベーションではなく、学校のPCの設定変更が必要です。
早急のご返事ありがとうございます。先生にも何度か設定の変更を頼んでいたのですが、簡単に変えれるものではないみたいなので、アセットストアはなしでいこうと思います。 もう学校では使えないかと思っていたので、うれしいです。 ありがとうございました!
ゆに丸1号
Community Mascot
17 days ago
こちらこそ言葉足らずですみません。マニュアルアクティベーションは設定変更ができないPC(今回の場合学校のPC)の他に、普通にウェブに繋がるPC(家にあるPCなど)があれば、設定変更できないPCはオフラインのままでも認証ができる方法です。 その方法ならログインはいらないはずですが、アセットストアは使えないのでアセットストアが使いたい場合はマニュアルアクティベーションではなく、学校のPCの設定変更が必要です。
17 days ago
Reply@ゆに丸1号ちなみにどうしても設定変更が難しいという場合、こんな方法もありますー https://docs.unity3d.com/ja/2018.2/Manual/ManualActivationGuide.html
その方法であれば、ログインがいらないということでしょうか?それとも、ログインできたらその方法でアセットストアが利用できるということでしょうか? 国語力なくてすみません…
ゆに丸1号
Community Mascot
17 days ago
ちなみにどうしても設定変更が難しいという場合、こんな方法もありますー https://docs.unity3d.com/ja/2018.2/Manual/ManualActivationGuide.html
View More Comments
いつも、お世話になっております。
技術的な話ではないのですが、Unityのマルチプレイヤーシステムを
構築するAPIが変わる、という話を聞きマルチプレイヤーに興味はあるものの、勉強できていません。
新しいAPIは、まだリリースされていないのでしょうか?
調べても、変わるという趣旨のサイトしか出てきません。

教えていただければ幸いです。

a month ago
Reply@tamtam現在α版がGithubで公開されていますが、今後どのようになるかはまだ未定です。 https://github.com/Unity-Technologies/multiplayer ちなみに、これを実装したサンプルプロジェクトがUnite LAで紹介された「FPS Sample」です。 https://github.com/Unity-Technologies/FPSSample ただし、これらのマルチプレイヤーシステムを私はまだ試していないので、オススメしてよいものか正直悩ましいところです・・・。
ありがとうございます。 少し待つのが得策のようですね…。今一度オフラインの勉強をしながら待ってみようと思います。
tamtam
Community Evangelist
a month ago
現在α版がGithubで公開されていますが、今後どのようになるかはまだ未定です。 https://github.com/Unity-Technologies/multiplayer ちなみに、これを実装したサンプルプロジェクトがUnite LAで紹介された「FPS Sample」です。 https://github.com/Unity-Technologies/FPSSample ただし、これらのマルチプレイヤーシステムを私はまだ試していないので、オススメしてよいものか正直悩ましいところです・・・。
a month ago
Reply@tamtam規模などにも拠りますが、初心者はいったんPhotonを使うのが良いかと思います。
夜遅く申し訳ございません。 知り合いにサーバー構築できるものがおり、そのものと相談した結果、やはりUnity純正のAPIを使った方が自由度が高いのではないかという結論に至りました。新しいネットワークAPIは、Untiy2019で発表されるのでしょうか?わがままで申し訳ないです。よろしくお願いします。
2 months ago
Reply@tamtam規模などにも拠りますが、初心者はいったんPhotonを使うのが良いかと思います。
返信遅くなり申し訳ありません。 試してみようと思います。教えてくださり、誠にありがとうございます。
View More Comments
先日Prefabを生成した際に、Z値が異常な数値となる原因をお尋ねしたのですが
残念ながら解決できませんでした。
その後、個人的に調査を続けました。
その途中、PCを買い替えました。
すると、今まで正常に生成されていた部分も、Z値が異常になりました。

また、調査で分かったのですがゲームの画面サイズを大きくすると、Z値もさらに大きくなりました。(正確に言うと-4970から-6980のような数値になるので、小さくなっています。)
なにか、画面サイズで変わる関数が存在するのでしょうか?
また、2DゲームですのでZ値を無視するような設定があれば
教えていただければ幸いです。

ご教授お願い致します。

ゆに丸1号
Community Mascot
2 months ago
時間がある時に確認してみますねー
2 months ago
Reply@ゆに丸1号通常考えにくい動作で、Z値を無視する設定というのもボクには分からないですね…。 とりあえず、新規のプロジェクトを作ってみてシンプルな環境でも再現するかを確認、再現しない場合はプロジェクトの設定の差などがあるはずなので探す、それでも再現する場合はプロジェクトをGitHubなどに上げて共有してもらえると何かわかるかもしれないです。
やってきました… 結果ですが、再現できてしまいました。 Google driveで共有させて頂きます。 https://drive.google.com/drive/folders/12zltei70g-oyGSLnjrxMH7j66sybbi6C?usp=sharing (6個ほど、ファイルがなぜかアップロードできなかったので、破損していたら別の方法で共有させていただきますので、その際は教えてください。)
2 months ago
Reply@ゆに丸1号通常考えにくい動作で、Z値を無視する設定というのもボクには分からないですね…。 とりあえず、新規のプロジェクトを作ってみてシンプルな環境でも再現するかを確認、再現しない場合はプロジェクトの設定の差などがあるはずなので探す、それでも再現する場合はプロジェクトをGitHubなどに上げて共有してもらえると何かわかるかもしれないです。
そうですか…。シンプルな環境でやってみます。
ゆに丸1号
Community Mascot
2 months ago
通常考えにくい動作で、Z値を無視する設定というのもボクには分からないですね…。 とりあえず、新規のプロジェクトを作ってみてシンプルな環境でも再現するかを確認、再現しない場合はプロジェクトの設定の差などがあるはずなので探す、それでも再現する場合はプロジェクトをGitHubなどに上げて共有してもらえると何かわかるかもしれないです。
以前Prefabを生成した際、ゲームオブジェクトのZ値が-4900のような数字になってしまいそれを、解決するためにスクリプト側から座標を変更するのはどうすればよいか
という趣旨の質問をさせて頂きました。

それのご回答を参考にし以下のようなコードを書きました
GameObject obj = (GameObject)Resources.Load(prefabの場所);
GameObject gameObj = Instantiate(obj, 以下の画像のオブジェクトを親にしました。);
Vector3 pos = gameObj.transform.position;
pos.Set(pos.x, pos.y, 0);
gameObj.transform.position = pos;

このコードではpotisionを変更することはできませんでした。
ご教授よろしくお願いします。

また、親にしたオブジェクトの親にはUnity標準のスクロール機能を生成した際に自動で作られた「Viewport」があり、上記のすべてのオブジェクトは「Canvas」を親にしています。

2 months ago
Reply@Yuji YASUHARA親のZ値も異常ではない、と。何か僕に勘違いがあるのだと思いますけど、不思議で仕方ありません。どうなってるんでしょうねー CancasのZ値は変えられない(変える操作を許容していない)はずです。
そうですか… お忙しい中時間を割いていただき、誠にありがとうございました。
Yuji YASUHARA
Field Engineer
2 months ago
親のZ値も異常ではない、と。何か僕に勘違いがあるのだと思いますけど、不思議で仕方ありません。どうなってるんでしょうねー CancasのZ値は変えられない(変える操作を許容していない)はずです。
2 months ago
Reply@Yuji YASUHARA>このコードではpotisionを変更することはできませんでした。 変更はできているはずです。 問題は、「なぜ-4900のような数字になっているのか」ですね。 おそらく、親の座標が4900なのではないでしょうか。 インスペクタから見た値は親からの相対値になるので、-4900がそこにあることによって初めて親の影響が相殺され、世界全体から見たときにゼロになります。 とにかくインスペクタから見た値をゼロにしたい場合は、代入する対象を transform.position を transform.localPosition とします。ただしインスペクタから見た値はゼロになっても、意図通りの位置ではないかもしれませんね。 以上は、詳細な症状について想像しながら回答しています。 よろしくです。
返信遅れて申し訳ありません。 親のZ値を確認しました。 ですが、Canvasが100になっていることを除いて数値の異常は、ありませんでした。 また、CanvasはZ値を変更することが出来ませんでした。 Canvasが影響しているのでしょうか? また、CanvasのZ値を変更することはできますか?
Yuji YASUHARA
Field Engineer
3 months ago
>このコードではpotisionを変更することはできませんでした。 変更はできているはずです。 問題は、「なぜ-4900のような数字になっているのか」ですね。 おそらく、親の座標が4900なのではないでしょうか。 インスペクタから見た値は親からの相対値になるので、-4900がそこにあることによって初めて親の影響が相殺され、世界全体から見たときにゼロになります。 とにかくインスペクタから見た値をゼロにしたい場合は、代入する対象を transform.position を transform.localPosition とします。ただしインスペクタから見た値はゼロになっても、意図通りの位置ではないかもしれませんね。 以上は、詳細な症状について想像しながら回答しています。 よろしくです。
まだまだ未熟ですが、2Dの製作用の画像等がないので製作を中止し3Dにも手を入れてみようと思い立ちまして、開発を始めてみたところ。
視点移動に関して問題が発生しました。私が作りたい視点移動システムは、マインクラフトのようなものです。しかし、以下のスクリプトではカーソルが右の画面端にいった際それ以上右に移動できないというものになってしまいました。
インターネット上に上がっているオープンソースを見て回りましたが、あるキーを入力している間だけ等でカバーしていました。

カーソルの位置をUnity側から操作できれば、中央に戻して…ということが出来ると思いましたが、厳しいようでした。
なにか代用策はありませんでしょうか?
ご教授よろしくお願いいたします。

void Update()
{
Angles.y -= (Mposition.x - Input.mousePosition.x) * speed;
Angles.x -= (Input.mousePosition.y - Mposition.y) * speed;

cameraa.transform.localEulerAngles = Angles;
Mposition = Input.mousePosition;
}

Y
4 months ago
Reply@YuyaCoder勝手に使用なんてとんでもありません(笑)
人に使ってもらうための記事ですから。 是非とも、僕の記事やいろいろな人の記事を参考にしオリジナルのゲームを世に放って下さい。done is better than perfect.です。評価が悪くとも評価されるということは興味を持っている人がいるということです。 頑張ってください(笑)。
Y
4 months ago
勝手に使用なんてとんでもありません(笑)
4 months ago
Reply@YuyaCoderこんにちはbytejp.comでのFPSの記事の著者、yuyaです。 エゴサして偶然このページみつけました(笑)。 1年以上前の記事ですが続き更新できてないので申し訳ないです。 続きで何か実装したいこと、今までの記事で分からないことがあればいつでも質問してくださいね。
作者様がいらっしゃるとは…。 勝手に使用して、申し訳ありません。 また、ご質問させていただくとこもあると思いますので その際は、どうかご教授よろしくお願いいたします。
Y
4 months ago
こんにちはbytejp.comでのFPSの記事の著者、yuyaです。 エゴサして偶然このページみつけました(笑)。 1年以上前の記事ですが続き更新できてないので申し訳ないです。 続きで何か実装したいこと、今までの記事で分からないことがあればいつでも質問してくださいね。
View More Comments
About Me
Prashaltという学生でゲームを作ろう!という軽いノリのチームに所属しています。無知でご迷惑をおかけするかもしれませんがよろしくお願い致します。
See more
Skills
Certifications (0)
Import
See all
かんぴょう's liked projects (0)
No likes yet
Following (1)
Follower (1)
Following Companies (0)
Not following anyone yet