UnityでMMO作りたいけどどうする!?(^^Part2 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/08/14(月) 14:23:16.30ID:/XfkBqs1
ここは>>1が皆ふぁんに協力してもらい、時には一人で奮闘しMMOを作るスレッドでふ(^^
Wiki
https://www65.atwiki.jp/parohaim/
前スレ
http://mevius.2ch.net/test/read.cgi/gamedev/1500187808/
2017/08/26(土) 01:54:08.77ID:2V5kiriw
ソース貼っちゃおうか、もう俺がつらいだけじゃん
だがそれじゃあボッキングの勉強にならないじゃん
という謎の葛藤
貼らない
だが死亡

ボッキング眠くなんないの?寝たらもう教えないけどね!
2017/08/26(土) 01:58:11.53ID:kHVEnKcM
このまま4時までぶっ通すつもりでふ(^^
2017/08/26(土) 01:59:14.42ID:2V5kiriw
おう
4時までじゃおわんないけどな!
2017/08/26(土) 02:06:24.78ID:kHVEnKcM
それでは続きを作りまひょう(^^
2017/08/26(土) 02:13:49.23ID:2V5kiriw
ItemManager

1 宣言するフィールド

Imageプレファブ用のリスト
serializeでImageプレファブをアタッチ
UIのSlot
playerのスクリプト

2 Start
SlotsをFindで保存
playerのスクリプトをgetComponentで取得
forループで100個のImageを
1) instanciate
2) setParentでSlotにセット
3) リストにadd
2017/08/26(土) 02:23:43.93ID:kHVEnKcM
情報量多いでふね(^^
頭ぱっぱらぱー(^^
2017/08/26(土) 02:24:12.16ID:kHVEnKcM
一つずつやっていきまひょう(^^
2017/08/26(土) 02:26:52.86ID:2V5kiriw
playerスクリプト
 itemリストを返すメソッドを作る

ItemManagerのonEnableで
 playerのitemリストを取得
 foreachでitemリストのIDを調べる
   Imageの配列のImageコンポーネントを取得
   Imageコンポーネントにスプライト[ ID ]を設定

ここまで書くと手持ちのアイテムがメニューに表示されるようになる
と俺の寝ぼけた脳内では結論している
2017/08/26(土) 02:29:34.26ID:2V5kiriw
この説明でボッキングができるとは思っていないので
というかボッキングじゃなくても酷なので
補足はするがちょっとQKするっていうかおにぎり買いにいってきます。。。
とりあえずやれるだけやってみるよろし
2017/08/26(土) 02:48:23.61ID:2V5kiriw
俵おむすび弁当うめぇ
2017/08/26(土) 02:55:37.89ID:kHVEnKcM
ごめんなふぁい(^^
パスタ作って食べてまひた(^^
2017/08/26(土) 03:03:31.88ID:2V5kiriw
田原総一朗はもしゃもしゃ何言ってるかわからん
三浦瑠璃ってなんかいいよな
女軍団毒舌でワロタ
2017/08/26(土) 03:10:29.57ID:2V5kiriw
>>427の説明が雑すぎて動かねぇから
とりあえず>>424だけでいいよ
2017/08/26(土) 03:15:45.66ID:kHVEnKcM
ふぁい(^^
2017/08/26(土) 03:19:56.06ID:2V5kiriw
>>424もミスってんな
訂正版再掲すっからこれ以外みなくてよし


ItemManager

1 宣言するフィールド

Imageリスト
Imageプレファブ(serializeにしてインスペクタでアタッチ)
Slots
playerスクリプト

2 Start

Imageのリストを初期化
SlotsをFindで保存
playerスクリプトをgetComponentで取得

forループで100個のImageを
1) instanciate
2) setParentでSlotにセット
3) Imageリストにadd
2017/08/26(土) 03:35:23.40ID:2V5kiriw
>>427の訂正版

playerスクリプト
 itemリストを返すメソッドを作る

ItemManagerのonEnableで
 playerのitemリストを取得
 int I;
 foreachでitemリストのすべてのIDを順に調べる
   Imageリスト[i]のImageコンポーネントを取得
   Imageコンポーネントにスプライト[ ID ]を設定
I++;
2017/08/26(土) 03:36:38.58ID:2V5kiriw
飯食ったら眠くなった

寝るッ

気が向いたらまた明日だ
2017/08/26(土) 03:39:55.66ID:kHVEnKcM
1 宣言するフィールド

Imageリスト
Imageプレファブ(serializeにしてインスペクタでアタッチ)
Slots
playerスクリプト

これは宣言するフィールド
void openis ()
{
Imageリスト
Imageプレファブ(serializeにしてインスペクタでアタッチ)
Slots
playerスクリプト
}
みたいな感じでふか?(^^
2017/08/26(土) 03:56:02.46ID:kHVEnKcM
僕もねましゅ(^^
2017/08/26(土) 05:00:16.64ID:n2EF2UH/
スカイプなら3分で終わることを延々とやり続けるクソスレ
2017/08/26(土) 07:57:06.74ID:2V5kiriw
>>437

ちゃうなあ、なんでメソッドみたいになるんだ

宣言するフィールドってのは
インスタンスフィールド
インスタンス変数
C#のクラスの説明にでてくるからYOME
2017/08/26(土) 07:57:30.92ID:kHVEnKcM
皆が寝てる間僕はこれをシコシコ作ってまひた(^^
http://i.imgur.com/NJT6Mdm.png
2017/08/26(土) 07:58:58.75ID:kHVEnKcM
あぁ、フィールドでひたか(^^
クラスの中、メソッドの外のあの場所でふよね(^^
寝ぼけてまひた(^^
2017/08/26(土) 08:06:27.65ID:kHVEnKcM
イメージリストを使うには
using UnityEngine.Experimental.UIElements;
これを付ければいいんでふか?(^^
2017/08/26(土) 08:11:06.14ID:kHVEnKcM
質問ばかりで申し訳ないでふ(^^
Slots
playerスクリプト
これはどうすればいいんでひょうか?(^^
睡眠不足思考停止2bit脳じゃあ理解できまふぇん(^^
public class ItemManager : MonoBehaviour {
Sprite[] textures = Resources.LoadAll<Sprite>("ItemTityPotions");
private List<Image> ImageList = new List<Image>();
[SerializeField]
Image IMAGE;

void Start () {

}
間違ってないでふよねここまで?(^^
2017/08/26(土) 08:53:37.52ID:bchde5yg
お前が餌やったんだぞ最後まで教えろよ
2017/08/26(土) 08:54:02.49ID:2V5kiriw
だいたいあってそうだな
2017/08/26(土) 08:57:26.64ID:2V5kiriw
うーんだが
Sprite[] textures = Resources.LoadAll<Sprite>("ItemTityPotions");
これエラーにならんか?
2017/08/26(土) 09:07:38.12ID:2V5kiriw
ああなんでもない大丈夫だ俺が勘違いした

というか俺が戻ったタイミングで寝んなw
2017/08/26(土) 09:21:49.83ID:2V5kiriw
>>443は関係なしExperimenntalなんとかとかいらない

あとは大丈夫かなとりあえず
2017/08/26(土) 09:45:57.39ID:2V5kiriw
ボッキング悪いな
ちとimageリストんとこが気持ちわるいので
起きたら少し直す

あとプレイヤースクリプトのフィールドが抜けてるけど
まぁあとでまとめて説明する
2017/08/26(土) 09:52:35.08ID:3nNIs8Eb
おやおや、急にスレが伸びてると思ったら…
ボッキングよかったなぁ

そして君たち睡眠時間短すぎよ
2017/08/26(土) 12:39:56.57ID:ou/uVqq4
ところでぼっこの氏って本業ゲームプログラマーなの?
2017/08/26(土) 13:09:11.60ID:sbkt8liP
本業じゃないだろ、あれは
2017/08/26(土) 13:55:00.28ID:kHVEnKcM
寝落ちしちゃいまひた(^^
ごめんなふぁい(^^
2017/08/26(土) 14:03:31.33ID:2V5kiriw
おおおおう

えーっと
private List<Image> ImageList = new List<Image>();
はリストじゃなくて配列に

そんでStartの中身つくる
2017/08/26(土) 14:10:09.60ID:kHVEnKcM
配列とはまた新しい要素が出てきまひたね・・・(^^
こうでふか?(^^
private Image[] ImageArray = new Image[100];
2017/08/26(土) 14:11:03.95ID:2V5kiriw
それだけど
宣言だけで初期化しない
2017/08/26(土) 14:13:33.54ID:kHVEnKcM
初期化はint[] array = {0, 1, 2};これを5,6,7と淡々と続き書いていく感じでふか?(^^
2017/08/26(土) 14:16:04.40ID:kHVEnKcM
ひょっとして二次元配列を使ったほうがいいでふか?(^^
2017/08/26(土) 14:16:14.13ID:2V5kiriw
2 Start

////Imageのリストを初期化 これいらない子
SlotsをFindで保存
playerスクリプトをgetComponentで取得

forループで100個のImageを
1) instanciate
2) setParentでSlotにセット
//////3) Imageリストにadd これもいらない子
ループ終わり

ImageArray = Slotsの子要素をすべて取得 //★New!
2017/08/26(土) 14:17:11.72ID:2V5kiriw
初期化はStartの最後のNewがしてくれるから不要
2017/08/26(土) 14:29:08.29ID:kHVEnKcM
RawImage 勃起ペニスSLOT収納 = GameObject.Find("Slots").GetComponent<Slots>();
GetComponent<Slots>();のSlotsがエラー吐きまふね(^^
2017/08/26(土) 14:30:38.71ID:2V5kiriw
・・・・

slotsはraw imageじゃないし、コンポーネントでもない
2017/08/26(土) 14:33:26.59ID:2V5kiriw
ああそうか何をしようとしてるかわかんないから無理ないのかなあ

UIとしてのSlotsを変数に保存しておく意味な

そのくっそふざけた名前の変数に(^^##
2017/08/26(土) 14:36:53.50ID:kHVEnKcM
上は解決しまひた(^^
GameObject 勃起ペニスPlayer = GetComponent<Playerbokking>();
これだとエラー吐きまふね(^^
2017/08/26(土) 14:37:33.42ID:kHVEnKcM
僕は一体どこへ向かってるんでひょうか?(^^
2017/08/26(土) 14:39:51.54ID:2V5kiriw
スクリプト(PlayerBokkingだっけ?)ってのはGameObject(ethan?)にアタッチされた"コンポーネント"
2017/08/26(土) 14:50:18.53ID:2V5kiriw
俺あと一時間くらいしか時間なく、アイコン表示ぐらいは終わらせたいので
もうちょっとヒント

欲しいのはPlayerBokking

PlayerBokkingはスクリプト(厳密に言うとpublicで宣言されたクラス)なので
ItemManagerからも見える「型」

なので
PlayerBokking bokking = イーサンどこですか(). イーサンのPlayerBokkingコンポーネントを取得

てなことを書いてやる、いつもやり忘れてnullReference出してるだろ
2017/08/26(土) 14:50:18.87ID:kHVEnKcM
http://i.imgur.com/rZ92boN.png
分からないときはコードがぐちゃぐちゃになる前に聞く(^^
これが一番大事でふ(^^
上みたいになったけどどうする!?(^^
2017/08/26(土) 14:50:55.91ID:2V5kiriw
いつも通りだなw
2017/08/26(土) 14:53:46.66ID:2V5kiriw
いくらなんでももういい加減理解しろ

GameObject hoge; と書いても、GameObject型の空っぽの箱

hoge = GameObject.Find("Ethan"); とか書いてやっとhogeという箱の中にイーサンが入る

GameObject.Findはシーン中のGameObjectを文字通り探してくる処理
2017/08/26(土) 14:53:51.06ID:kHVEnKcM
http://i.imgur.com/t68gSTH.png
こうなりまひた(^^
また未知のエラーががが(^^
2017/08/26(土) 14:54:51.99ID:kHVEnKcM
>>471
探さなきゃいけなかったんでふね(^^
最近忘れっぽくて困りまふ(^^
2017/08/26(土) 14:56:36.50ID:kHVEnKcM
無事出来まひた(^^
感謝感謝のボッキング!(^^

(前にやったことを萎びたチンコみたいに忘れるのってもう僕はだめでふね・・・)(^^
2017/08/26(土) 14:58:31.15ID:2V5kiriw
そんで
100回ループしてImageをSlotsにならべてやり、
ならべたImageを配列として取り出しておく(もうすぐ使う)
2017/08/26(土) 15:06:29.06ID:kHVEnKcM
ここがググり方が悪いのかよくわかりまふぇんでひた(^^
1) instanciate
2) setParent
2017/08/26(土) 15:09:50.73ID:2V5kiriw
そりゃタイポだw

Instantiate これは知ってるだろ

SetParent こっちはでてくるだろ
2017/08/26(土) 15:13:03.82ID:kHVEnKcM
モンスターのスポーン関係で使ったような使ってないような・・・(^^
調べてみたら何とかなりそうな気がして来まひた(^^
2017/08/26(土) 15:13:25.67ID:2V5kiriw
Slots(panel)
-Image
-Image
-....
ヒエラルキー上でこういう親子関係になると
SlotsのGrit Layout Groupが勝手にImageを並べてくれる

というのを親に指定するSetParentを使ってスクリプト上で実現している


あと30ぷーん
2017/08/26(土) 15:18:57.73ID:kHVEnKcM
for (int i = 0; i < bokkiage; i++)
{

if (bokkiage == 100)
{
Object ItemRaw1 = null;
Instantiate(ItemRaw1, new Vector3(0, 0, 0), Quaternion.identity);
break;
}
}
こうなりまひた(^^
間違ってる所はないでふよね?(^^
2017/08/26(土) 15:23:22.78ID:2V5kiriw
なんだこれ

ちょっとまて意味がわからん・・・
2017/08/26(土) 15:30:40.08ID:2V5kiriw
うわまてまてまて
ヒー
時間がないので罵倒と説教は省略しまして
ほとんどまちがってるぞ

まず100回くりかえすforループを書く

Object ItemRaw1 = null;  これいらん意味わからん
bokkiageとかいうのもいらない
if 文もいらない

作りたいのはImageのプレファブ(UI)なので
new Vector3(0, 0, 0), Quaternion.identityこんなのも関係ない
UI Instantiateとかでぐぐってでてこないか?
2017/08/26(土) 15:32:44.97ID:2V5kiriw
http://tm8r.hateblo.jp/entry/2016/04/12/202214

こんな感じのを100回くりかえす
2017/08/26(土) 15:34:57.34ID:2V5kiriw
先回りすると
gameObject.transform
これはgameObjectではなくFindしておいたSlots
2017/08/26(土) 15:47:42.51ID:kHVEnKcM
http://i.imgur.com/GwRlUQH.png
こうなりまひた・・・もう僕はダメみたいでふ・・・(^^
ぼっこの殿も出かけちゃったようでふひ(^^
しばらく頭を冷やしまひょう(^^
2017/08/26(土) 15:51:15.79ID:2V5kiriw
もうでかけるけど
forループもかけないのは限度超えてるぞ
なんのために本買ったんだ
勉強しとけ
2017/08/26(土) 16:02:32.88ID:kHVEnKcM
ふぁい(^^
今日一日かけて勉強しまふ(^^
2017/08/26(土) 16:56:41.62ID:3nNIs8Eb
正直笑ってしまったわw
for文も書けずにここまで実装できてしまうなんてやっぱりすごいのね!


ボキちゃんじゃなくて、
Unityが、
2017/08/26(土) 18:07:18.33ID:kHVEnKcM
僕の料理(^^
鶏胸肉を一口大に切りまふ(^^
バターで焦げ目がつくまで中火でこんがり焼きまふ(^^
両面焼けて来たらコショウたっぷり塩中量入れてかき混ぜて全体に塩コショウが行き渡るようにしまふ(^^
完成!(^^
これが中々おいしいんでふよ(^^
ぜひお試しあれ(^^
ボッキング!(^^
2017/08/26(土) 18:47:16.11ID:GVqikoyN
それ普通のバター焼きじゃねえか
そしてバターといったら醤油だろうが

そんなことよりfor勉強したら
さっさと作りやがれ
2017/08/26(土) 22:04:19.96ID:kHVEnKcM
寝てまひた(^^
寝る前にFor勉強して作り直しまひたよ(^^
2017/08/26(土) 22:28:22.37ID:kHVEnKcM
for (int i = 0; i < 100; i++)
{
GameObject obj = (GameObject)Resources.Load("Prefabs/ToOutSidePlate");
GameObject prefab = Instantiate(obj);
prefab.transform.SetParent(transform);

}
ここからこれをどう改変していいのやら・・・(^^
2017/08/26(土) 23:35:33.08ID:3nNIs8Eb
愛(i)とは何かね?
2017/08/26(土) 23:58:23.24ID:kHVEnKcM
int型の変数でふよ(^^
(i)←まんこみたいでふ(^^
2017/08/27(日) 00:11:32.87ID:x+sSe/+w
【悲報】ぼっこの殿、去る(^^
こうなったら自力で出来るところまでやってやりまふよ(^^
といってもモデリングくらいしかできまふぇんが(^^
スクリプト知識を深めるためにせっかく買った猫C#でも読んでみまふか(^^
2017/08/27(日) 00:36:32.32ID:x+sSe/+w
Sprite[] textures = Resources.LoadAll<Sprite>("ItemTityPotions");
この部分が赤エラー4つくらい吐いてるんでふけど原因分かる方いまふぇんか?(^^
497名前は開発中のものです。
垢版 |
2017/08/27(日) 00:40:50.48ID:zU6qDGOi
何が作りたいのかわからないけどそれで良いと思いました
2017/08/27(日) 00:47:38.97ID:x+sSe/+w
でも赤エラー4つ・・・(^^
http://i.imgur.com/4vuuXE9.png
499名前は開発中のものです。
垢版 |
2017/08/27(日) 00:57:43.04ID:zU6qDGOi
コンストラクターに書くなって言われてるけどそのコードは何処にかいているの?
2017/08/27(日) 01:01:06.86ID:x+sSe/+w
http://i.imgur.com/uRdz9TQ.png
フィールドに書いてまふ(^^
どこに移せばいいんでふか(^^
501名前は開発中のものです。
垢版 |
2017/08/27(日) 01:08:01.87ID:zU6qDGOi
Startの一番上で良いと思うけどそもそも今使ってないなら消すか
コメントアウトしといたほうが良いかも
2017/08/27(日) 01:19:56.48ID:x+sSe/+w
エラー吐かなくなりまひた(^^
感謝感謝のボッキング!(^^
あともう一つ(^^
for (int i = 0; i < 100; i++)
{
GameObject obj = (GameObject)Resources.Load("Prefabs/ItemRaw1");
GameObject prefab = Instantiate(obj);
prefab.transform.SetParent(transform);

}
ここが(^^
GameObject prefab = Instantiate(obj);
こんなエラーを吐きまふ(^^
解決方法ご教授お願いしまふ(^^
ArgumentException: The Object you want to instantiate is null.
UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:238)
UnityEngine.Object.Instantiate[GameObject] (UnityEngine.GameObject original) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.cs:199)
ItemManager.Start () (at Assets/スクリプト/ItemManager.cs:20)
503名前は開発中のものです。
垢版 |
2017/08/27(日) 01:30:42.67ID:zU6qDGOi
うまくロード出来ないので
"Prefabs/ItemRaw1"
がResourcesの中に入っているか、綴り間違ってないか確認で
2017/08/27(日) 01:32:58.34ID:x+sSe/+w
InvalidCastException: Cannot cast from source type to destination type.
ItemManager.Start () (at Assets/スクリプト/ItemManager.cs:19)
エラー文が変わりまひた(^^
英語力がほしいでふ(^^
2017/08/27(日) 01:34:38.12ID:x+sSe/+w
出来まひた(^^
2017/08/27(日) 01:37:30.38ID:x+sSe/+w
2019年は亥年なのでイノシシにちなんだイベントキャラ、アイテムを出そうと思いまふ(^^
あと一年早く完成する予定だったら戌年でチンコ犬がイベントモンスターに出せたのに・・・(^^
2017/08/27(日) 01:48:09.65ID:x+sSe/+w
懐かしい画像が出てきまひた(^^
といっても1ヶ月くらい前でふけど(^^
http://i.imgur.com/NKjZI4v.png
このころはまさか製作がここまで進むとは思いまふぇんでひた(^^
皆様に感謝感謝のボッキング!(^^
2017/08/27(日) 02:03:15.85ID:p7p4ha29
アーリーアクセスで使ってもいいのよ
ワンコ
2017/08/27(日) 02:08:07.02ID:x+sSe/+w
チンコ犬を出すとしたらやっぱりモンスターでひょうか?(^^
2017/08/27(日) 02:10:06.82ID:+LtuPRMJ
おいこら
forのとこどうなった?
2017/08/27(日) 02:34:55.27ID:x+sSe/+w
void Start () {
Sprite[] textures = Resources.LoadAll<Sprite>("ItemTityPotions");
GameObject 勃起ペニスSLOT収納 = GameObject.Find("Slots");
Playerbokking bokking = GameObject.Find("Ethan").GetComponent<Playerbokking>();
for (int i = 0; i < 100; i++)
{
GameObject obj = (GameObject)Resources.Load("ItemRaw1");
GameObject prefab = Instantiate(obj);
prefab.transform.SetParent(transform);

}
}
こうなりまひた(^^
2017/08/27(日) 02:39:04.29ID:+LtuPRMJ
prefab.transform.SetParent(Slotsを格納した変数名.transform);

こうだな
2017/08/27(日) 02:40:41.27ID:+LtuPRMJ
この状態で実行するとImageが自動的に並ぶようになったか?
2017/08/27(日) 02:50:30.10ID:x+sSe/+w
ごはん中・・・しばし待たれよ(^^
2017/08/27(日) 02:56:03.31ID:x+sSe/+w
こうなりまひた(^^
http://i.imgur.com/y3uCnvT.png
Imageが自動で並ぶように!?(^^
2017/08/27(日) 02:56:58.22ID:+LtuPRMJ
さようか

ちょっとこの一連の作業を補足しておくと
普通に所持アイテムを並べるだけならもっと簡単にできるが
未来のアイテムの配置換えを考慮して
Slotsに事前に100個のイメージを配置しておくという処理をしている

まだ今の時点だとアイコンは表示されない
2017/08/27(日) 02:58:51.08ID:+LtuPRMJ
んー?w

なんか余計なことやったな?w
2017/08/27(日) 02:59:11.48ID:x+sSe/+w
つまり収納したアイテムのIDによってアイコンが変わる感じでふね(^^
アイコンはたくさん作ったのでドンとこいでふ(^^
2017/08/27(日) 02:59:41.92ID:x+sSe/+w
余計なことってなんでひょうか?(^^
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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