[過去ログ] UnityでC#勉強してMMO作たいけどどうする!?(^^ [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
209: 2017/09/06(水)20:57 ID:zgtqawfd(1/29) AAS
ボッキングくん
起きていても寝ていても元気よく返事をしたまえ
211: 2017/09/06(水)21:07 ID:zgtqawfd(2/29) AAS
うむ、俺の元気がなくなった
ではさっそくだが
作業していただこう
ソースの整理である
212: 2017/09/06(水)21:08 ID:zgtqawfd(3/29) AAS
あ、作業前にバックアップしたまえ
■ItemTest.cs
消す public ItemData ItemData;
[SerializeField]
Public int ID; //publicを消す
■ItemSlot.cs
省8
213: 2017/09/06(水)21:12 ID:zgtqawfd(4/29) AAS
■Playerbokking.cs
以下不要になったので削除
private List<int> itemIDs = new List<int>();
public List<int> getItemIDs()
{
return itemIDs;
}
ここまで
if (dis < AttackRange)
{
省11
214: 2017/09/06(水)21:14 ID:zgtqawfd(5/29) AAS
■ItemManager.cs
Start内を下記に直す
textures = Resources.LoadAll<Sprite>("ItemTityPotions");
Slots = GameObject.Find("Slots");
bokking = GameObject.Find("Ethan").GetComponent<Playerbokking>();
GameObject slotPrefab = (GameObject)Resources.Load("itemSlotPrefab");
ItemSlot.setItemIcon (textures);
ItemSlot.setItemManager (this);
for (int i = 0; i < 100; i++)
{
省6
215: 2017/09/06(水)21:22 ID:zgtqawfd(6/29) AAS
何をしているかというと
インベントリ関連の不要になったコードの削除と
効率悪い処理を直している
これ終わったらインベントリ処理の説明をする
説明理解して消化できれば
アイテムの配置換えはヒントぐらいでできるであろう
217: 2017/09/06(水)21:29 ID:zgtqawfd(7/29) AAS
はやっ
ちゃんとうごくかね?
219: 2017/09/06(水)21:31 ID:zgtqawfd(8/29) AAS
さよか
では説明
まず、フィールド上に配置されるアイテムのスクリプト
itemTest.csだっけ?
この中身をみる
見た目はともかく、宣言されてるのはIDだけだな?
ここにはexcelで作ったデータとか一切ない
IDのみ
魂の器は空っぽなのよ
220: 2017/09/06(水)21:34 ID:zgtqawfd(9/29) AAS
次に
Playerbokking.csの
アイテム取得処理をみる
else if(targetTag == "Item")
{
Vector3 Apos = transform.position; //このスクリプトの持ち主、つまりplayerの座標
Vector3 Bpos = target.transform.position; //targetの座標
float dis = Vector3.Distance(Apos, Bpos); //距離計算しておく
if (dis < AttackRange)
{
省9
222: 2017/09/06(水)21:38 ID:zgtqawfd(10/29) AAS
ちょっと寄り道して
ItemSlot.cs
static ItemManager itemManager;
static Sprite[] itemIcon;
staticは意味わかるか?
223: 2017/09/06(水)21:38 ID:zgtqawfd(11/29) AAS
難しいと思う
225: 2017/09/06(水)21:41 ID:zgtqawfd(12/29) AAS
というか、文法的には普通のことしかしてない
むしろボッキング向けになるべく簡単なコード選んでる
ラムダはこのスレッド内で誰か説明してたからあえていれてる
226: 2017/09/06(水)21:42 ID:zgtqawfd(13/29) AAS
staticはまぁそんな感じ
ラムダも含めて猫でも知っているので猫に尋ねたらよろしいな
228: 2017/09/06(水)21:45 ID:zgtqawfd(14/29) AAS
そんで
ItemSlotはインベントリに100個ならべてるイメージのスクリプト
public void setId(int id){
img.sprite = itemIcon [id];
this.id = id;
}
このメソッドが呼ばれると、渡されたIDを保存しつつ
itemIconのID番目の画像を取り出して設定している
230(1): 2017/09/06(水)21:49 ID:zgtqawfd(15/29) AAS
んでItemManager.cs
どうやってIDを処理しているか
public void setItem(int id)
{
int index = itemSlotList.FindIndex(s => s.getId() == 0);
itemSlotList [index].setId(id);
}
PlayerbokkingにまるなげされたIDがここで呼ばれる
何をするかというと、itemSlotのスクリプトのリストを調べて
IDが0のものを探すというラムダ
省4
231: 2017/09/06(水)21:51 ID:zgtqawfd(16/29) AAS
slotListの初期化とか飛ばして説明しているので
今は理解できないかも
あとで初期化も含めて読み直してみるべし
以上で「アイテムがスロットにセットされる」
232: 2017/09/06(水)21:53 ID:zgtqawfd(17/29) AAS
日本語で流れを整理すると
playerbokkingがアイテムをクリック
アイテムIDを入手してItemMangerに渡す
ItemManagerが空きスロットを探して
そのスロットにIDと画像をセットする
234: 2017/09/06(水)21:56 ID:zgtqawfd(18/29) AAS
ちょっと補足すると
ItemManagerはitemSlotのスクリプト100個、Startで所有しているので
空きをしらべてIDを渡すことができる
itemSlotはSpriteをすべてもっているので指定IDの画像を自分自身にセットできる
236(1): 2017/09/06(水)22:00 ID:zgtqawfd(19/29) AAS
結局のところ
IDを渡して、IDに相当する画像セットしてるだけで
回復するとかなんとかまったくここまででてこない
あとで自分で流れおいながらコメントつけてみな
それで多分わかるようになる
239: 2017/09/06(水)22:02 ID:zgtqawfd(20/29) AAS
もうちょっとでおわるよ
こっからアイテムの使用
さっきまではクリックされたアイテムIDがスロットにセットされるという説明
今度はスロットをクリックして保存されてるIDを使う処理
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.040s