Notifications
bg
かんぴょう
0
Likes
1
Follower
0
Connections
All
Articles0
Games0
Showcases0
Column0
Jobs0
いつも、お世話になっております。
技術的な話ではないのですが、Unityのマルチプレイヤーシステムを
構築するAPIが変わる、という話を聞きマルチプレイヤーに興味はあるものの、勉強できていません。
新しいAPIは、まだリリースされていないのでしょうか?
調べても、変わるという趣旨のサイトしか出てきません。

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

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

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

ご教授お願い致します。

ゆに丸1号
Community Mascot
20 days ago
時間がある時に確認してみますねー
24 days ago
Reply@ゆに丸1号通常考えにくい動作で、Z値を無視する設定というのもボクには分からないですね…。 とりあえず、新規のプロジェクトを作ってみてシンプルな環境でも再現するかを確認、再現しない場合はプロジェクトの設定の差などがあるはずなので探す、それでも再現する場合はプロジェクトをGitHubなどに上げて共有してもらえると何かわかるかもしれないです。
やってきました… 結果ですが、再現できてしまいました。 Google driveで共有させて頂きます。 https://drive.google.com/drive/folders/12zltei70g-oyGSLnjrxMH7j66sybbi6C?usp=sharing (6個ほど、ファイルがなぜかアップロードできなかったので、破損していたら別の方法で共有させていただきますので、その際は教えてください。)
24 days ago
Reply@ゆに丸1号通常考えにくい動作で、Z値を無視する設定というのもボクには分からないですね…。 とりあえず、新規のプロジェクトを作ってみてシンプルな環境でも再現するかを確認、再現しない場合はプロジェクトの設定の差などがあるはずなので探す、それでも再現する場合はプロジェクトをGitHubなどに上げて共有してもらえると何かわかるかもしれないです。
そうですか…。シンプルな環境でやってみます。
ゆに丸1号
Community Mascot
24 days 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」を親にしています。

a month ago
Reply@Yuji YASUHARA親のZ値も異常ではない、と。何か僕に勘違いがあるのだと思いますけど、不思議で仕方ありません。どうなってるんでしょうねー CancasのZ値は変えられない(変える操作を許容していない)はずです。
そうですか… お忙しい中時間を割いていただき、誠にありがとうございました。
Yuji YASUHARA
Field Engineer
a month ago
親のZ値も異常ではない、と。何か僕に勘違いがあるのだと思いますけど、不思議で仕方ありません。どうなってるんでしょうねー CancasのZ値は変えられない(変える操作を許容していない)はずです。
a month ago
Reply@Yuji YASUHARA>このコードではpotisionを変更することはできませんでした。 変更はできているはずです。 問題は、「なぜ-4900のような数字になっているのか」ですね。 おそらく、親の座標が4900なのではないでしょうか。 インスペクタから見た値は親からの相対値になるので、-4900がそこにあることによって初めて親の影響が相殺され、世界全体から見たときにゼロになります。 とにかくインスペクタから見た値をゼロにしたい場合は、代入する対象を transform.position を transform.localPosition とします。ただしインスペクタから見た値はゼロになっても、意図通りの位置ではないかもしれませんね。 以上は、詳細な症状について想像しながら回答しています。 よろしくです。
返信遅れて申し訳ありません。 親のZ値を確認しました。 ですが、Canvasが100になっていることを除いて数値の異常は、ありませんでした。 また、CanvasはZ値を変更することが出来ませんでした。 Canvasが影響しているのでしょうか? また、CanvasのZ値を変更することはできますか?
Yuji YASUHARA
Field Engineer
a month 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
2 months ago
Reply@YuyaCoder勝手に使用なんてとんでもありません(笑)
人に使ってもらうための記事ですから。 是非とも、僕の記事やいろいろな人の記事を参考にしオリジナルのゲームを世に放って下さい。done is better than perfect.です。評価が悪くとも評価されるということは興味を持っている人がいるということです。 頑張ってください(笑)。
Y
2 months ago
勝手に使用なんてとんでもありません(笑)
2 months ago
Reply@YuyaCoderこんにちはbytejp.comでのFPSの記事の著者、yuyaです。 エゴサして偶然このページみつけました(笑)。 1年以上前の記事ですが続き更新できてないので申し訳ないです。 続きで何か実装したいこと、今までの記事で分からないことがあればいつでも質問してくださいね。
作者様がいらっしゃるとは…。 勝手に使用して、申し訳ありません。 また、ご質問させていただくとこもあると思いますので その際は、どうかご教授よろしくお願いいたします。
Y
3 months ago
こんにちはbytejp.comでのFPSの記事の著者、yuyaです。 エゴサして偶然このページみつけました(笑)。 1年以上前の記事ですが続き更新できてないので申し訳ないです。 続きで何か実装したいこと、今までの記事で分からないことがあればいつでも質問してくださいね。
View More Comments
(自己解決と思ったのですが?…)
久々に失礼します。

再生時に画面を大きくする機能を使用すると動的に生成したPrefabがカメラに映らなくなります。その要因としてZ値が-6090になっていることがわかりました。(また機能を使用しなくても-2580になります)

gameObject.transform.parent = EnemyPictureGroup.transform;
gameObject.transform.localScale = new Vector3(1, 1, 0);

上記のように生成される座標を指定しています。ですがVisual Studioのデバック機能で確認したところ座標が反映されていませんでした。
どうすれば反映されますでしょうか?

また、親にしているオブジェクトはCanvasを親に持っておりZ値は0になっています。親に付けているコンポーネントは「Horizontal Layout Group」と「Content Size Fitter」です。

3 months ago
Reply@Yuji YASUHARA@かんぴょう さん >なんとSetが動きませんでした。 >gameOject.transform.position.Set(gj.transform.position.x, gj.transform.position.y, 0); >上のように書いたのですがZ値は変わりませんでした。 ああ。これはよくハマってしまう問題です。以下のように記述する必要があります。 Vector3 pos = transform.position; pos.Set(pos.x, pos.y, 0); transform.position = pos; (gameOject.transform は単に transform と書けるはずなのでそうしています) 簡単に説明しますと、 transform.position は「たまたま」実体を複製して返す仕様になっているのですが、表面的にはそれがわからないという、 これはC#という言語が持つ、参照と実体についての記述の問題と言えるでしょう。 より深く納得したいと思われたら、ちょうど、昨年11月にこの問題について解説しました。 https://www.slideshare.net/UnityTechnologiesJapan/unity-2018-123834921 Part 2 参照と実体 をご覧くださいませ。パラパラと眺めるだけでも雰囲気は伝わると思います。 この先C#に限らず、プログラミングを進めようとすると避けて通れない問題なので、いつか思い出して復習していただけるといいと思います。 がんばってください!
ご返事ありがとうございます。 解説、参考にさせて頂きます。 今回もありがとうございました。
Yuji YASUHARA
Field Engineer
3 months ago
@かんぴょう さん >なんとSetが動きませんでした。 >gameOject.transform.position.Set(gj.transform.position.x, gj.transform.position.y, 0); >上のように書いたのですがZ値は変わりませんでした。 ああ。これはよくハマってしまう問題です。以下のように記述する必要があります。 Vector3 pos = transform.position; pos.Set(pos.x, pos.y, 0); transform.position = pos; (gameOject.transform は単に transform と書けるはずなのでそうしています) 簡単に説明しますと、 transform.position は「たまたま」実体を複製して返す仕様になっているのですが、表面的にはそれがわからないという、 これはC#という言語が持つ、参照と実体についての記述の問題と言えるでしょう。 より深く納得したいと思われたら、ちょうど、昨年11月にこの問題について解説しました。 https://www.slideshare.net/UnityTechnologiesJapan/unity-2018-123834921 Part 2 参照と実体 をご覧くださいませ。パラパラと眺めるだけでも雰囲気は伝わると思います。 この先C#に限らず、プログラミングを進めようとすると避けて通れない問題なので、いつか思い出して復習していただけるといいと思います。 がんばってください!
tamtam
Community Evangelist
3 months ago
Reply@かんぴょう解決した!positionをSet関数で指定して終わりだ!と思ったのですが なんとSetが動きませんでした。 gameOject.transform.position.Set(gj.transform.position.x, gj.transform.position.y, 0); 上のように書いたのですがZ値は変わりませんでした。 教えて頂ければと思います。 また、Prefabにもともと座標を追加すればよいと思ったのですが、子にすると座標や大きさが変わってしまい再度指定する必要がありました。 ご教授よろしくお願いいたします。
元スレの疑問に対してはちょっと分かりかねますが、transform.positionにはset関数が無いのでそれで動かないのでは?と思われます。 https://docs.unity3d.com/ja/current/ScriptReference/Transform-position.html
3 months ago
解決した!positionをSet関数で指定して終わりだ!と思ったのですが なんとSetが動きませんでした。 gameOject.transform.position.Set(gj.transform.position.x, gj.transform.position.y, 0); 上のように書いたのですがZ値は変わりませんでした。 教えて頂ければと思います。 また、Prefabにもともと座標を追加すればよいと思ったのですが、子にすると座標や大きさが変わってしまい再度指定する必要がありました。 ご教授よろしくお願いいたします。
いつもお世話になっております。私ばっかり質問してる気がして少し気まずいのですが。頻繁ですがご教授お願いします。

2Dの質問です。

public void OnFightClick()
{
MainText.alignment = TextAnchor.UpperRight;

MainTextUI.localScale = new Vector3(21, 15, 0);

MainTextUI.position = new Vector3(238, -83, 0);
}

というコードをかき先日ご回答いただいた方法でボタンに反映させました。

しかし動画の通り(一瞬すぎて見にくいですね。申し訳ありません。)ボタンを押すと消えてしまいます。同じ座標にUnity側から変更すると正しく表示されます。なぜでしょうか?Z値などをいじってみたのですが良く分からず…
ご教授お願い致します。

tamtam
Community Evangelist
8 months ago
Reply@かんぴょう自己解決しました。ありがとうございました。
おお、よかったです!
8 months ago
自己解決しました。ありがとうございました。
About Me
No description
See more
Skills
No skills added yet
Certifications (0)
Import
See all
かんぴょう's liked projects (0)
No likes yet
Following (1)
Follower (1)
Following Companies (0)
Not following anyone yet