Học Unity
»
Ban Quản trị thông báo
»
Tin tức và thảo luận chung
»
Xây dựng hệ thống cửa hàng item trong game Unity – Phần 3: Xây dựng hệ thống shop
Danh hiệu: Administration
Nhóm: Gia nhập: 20-08-2014(UTC) Bài viết: 60
Cảm ơn: 2 lần Được cảm ơn: 2 lần trong 2 bài viết
|
Đây là bài viết của tác giả tiến nguyễn bên unityviet. ===================================================== Xin chào tất cả các bạn, hôm nay lại được gặp lại các bạn yêu lập trinh game trong series: Xây dựng hệ thống shop item. Ở phần 2 chúng ta đã xây dựng hoàn tất phần cấu trúc dữ liệu của hệ thống shop (item vehicle), tiếp theo mình sẽ hướng dẫn các bạn load dữ liệu từ database lên và hiện thị lên màn hình để xây dựng hệ thống shop hoàn chỉnh phần giao diện.
Chuẩn bị giao diện: Đầu tiên chúng ta thiết kế một template giao diện scroll view như thế này:
Trong template này chúng ta sử dụng NGUI(download phần tool trong diễn đàn) để xây dựng (mình sẽ có một bài blog nhỏ để hướng dẫn cụ thể việc này sau.
Mình sẽ nói sơ thành phần của template này:
UIPanel (panel bao quanh) UI2DSprite (để làm background của các panel và item) UIScrollView UIGrid (để canh chỉnh các item trong scroll view) UIButton (để băt sự kiện click) UILable (để thể hiện tên item, giá và mô tả) Tiếp theo mình sẽ viết một đối tượng để phụ trách việc lấy thông tin vật phẩm vào fill vào grid của scroll view
Lưu ý: khi tạo xong tempate bạn phải tạo prefab item trong shop đặt vào thư mục Resource để khi load dữ liệu chúng ta sẽ sử trên template đấy để tạo item(như hình dưới).
VehicleShop.cs
Mã:
using UnityEngine;
using System.Collections;
using SimpleJSON;
public class VehicleShop : MonoBehaviour
{
public UIPanel contentPanel;
static Object itemStoreObj;
public UIGrid gridContent;
public UIScrollView scrollview;
private BetterList<ItemVehicle> itemVehicles;
private UIDragScrollView gragScrolView;
void Start()
{
loadFromData();
}
public ItemVehicle getItem(int index)
{
if (index < itemVehicles.size)
{
return itemVehicles[index];
}
return null;
}
public void loadFromData()
{
contentPanel.alpha = 0;
TextAsset bindata = Resources.Load(PathData.shop) as TextAsset;
if (bindata != null)
{
var jsonNode = JSONNode.Parse(bindata.text);
if (jsonNode != null)
{
itemVehicles = new BetterList<ItemVehicle>();
for (int i = 0; i < jsonNode.Count; ++i)
{
ItemVehicle item = createItem();
if (item != null)
{
item.assignData(jsonNode[i]);
if (gragScrolView == null)
{
gragScrolView = item.GetComponent<UIDragScrollView>();
}
}
}
}
gridContent.Reposition();
}
}
public ItemVehicle createItem()
{
if (itemStoreObj == null)
{
itemStoreObj = Resources.Load("Shop/itemPet");
}
if (itemStoreObj != null)
{
GameObject obj = Instantiate(itemStoreObj) as GameObject;
if (obj != null)
{
obj.transform.parent = gridContent.transform;
obj.transform.localScale = Vector3.one;
obj.transform.localEulerAngles = Vector3.zero;
obj.transform.localPosition = Vector3.zero;
return obj.GetComponent<ItemVehicle>();
}
}
return null;
}
}
Và khi chạy chúng ta có kết quả:
Vậy là chúng ta đã hoàn tất được shop và cơ sở dữ liệu lưu trữ bằng JSON và tempalte rồi.
Đến đây mình xin kết thúc bài viết này và hẹn gặp lại các bạn ở Phần 4: Tích hợp hệ thống thanh toán.
Cảm ơn các bạn đã quan tâm theo dõi, nếu thấy hay thích thì like nếu thấy hay thì share giúp mình nhé.
|
|
|
|
Học Unity
»
Ban Quản trị thông báo
»
Tin tức và thảo luận chung
»
Xây dựng hệ thống cửa hàng item trong game Unity – Phần 3: Xây dựng hệ thống shop
Di chuyển
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.