== Giới Thiệu ====
Đăng ký học:
Discord –
Chỗ AE chém gió về Game Dev
Sai Saga –
Website dạy làm Game cho Người Việt
Sai Game –
Kênh dạy lập trình Unity cho Người Việt
#unity #saigame
== Giới Thiệu ====
Đăng ký học:
Discord –
Chỗ AE chém gió về Game Dev
Sai Saga –
Website dạy làm Game cho Người Việt
Sai Game –
Kênh dạy lập trình Unity cho Người Việt
#unity #saigame
Note cho ai cần, không rõ là do bản mới hay không nhưng hàm GetObjFromPool kiểm tra tên phải thêm "(Clone)" vào phía sau
protected virtual Transform GetObjFromPool(Transform obj)
{
foreach(Transform prefab in this.holders)
{
if (prefab.name == obj.name + "(Clone)")
{
this.holders.Remove(prefab);
Debug.Log(transform.name + ": Get Obj from Pool", transform.gameObject);
return prefab;
}
}
Transform newPrefab = Instantiate(obj);
Debug.Log(transform.name + ": Clone new Obj", transform.gameObject);
return newPrefab;
}
a ơi e làm như a nhưng khi khong remove được e thử debug thì nó báo remove bị false a ạ
E mới học về unity tầm khoảng 1 tháng và trước đó củng k biết nhiều về lập trình , em xem C3 từ tập 1 tới tập này củng hiểu được kha khá, a cho e hỏi mấy kiến thức tập sau có quá nặng ko ạ có cần xem trước seri nào của a để theo được không . Em cảm ơn
tạo đường đi vô tận trong endless runner game người ta cũng xài object pool à anh
cho em hỏi là em có 2 cái Bullet là Bullet_1 và Bullet_2 nhưng mà khi em Instantiate thì lúc Remove nó k hiện trong Holder mà nó mất hẳn luôn là sao ạ
shooting mà sao a đọc thành "suất tin"😂 e nghe nhằm hả😂
Dành cho những ai chưa hiểu công dụng của Object Pool Pattern là gì thì mình xin giải thích. Object Pool Pattern là một kỹ thuật được sử dụng trong lập trình game để tối ưu hóa hiệu suất và quản lý tài nguyên bằng cách tái sử dụng các đối tượng đã tạo trước thay vì tạo mới chúng khi cần. Điều này giúp giảm độ trễ và tăng hiệu suất tổng thể của trò chơi. Cụ thể nó sẽ tái sử dụng đối tượng đã tạo trc đó bị hủy bằng cách bỏ đối tượng bị hủy vô lại pool, nó giống như cơ chế nạp đạn vậy. Mình sẽ tạo sẵn đối tượng trong pool khi khởi tạo game thay vì để nó tạo xong đối tượng mới bỏ vào pool vì nó chỉ cần lấy sẵn đối tượng có trong pool đặt vào vị trí bắn là đc thay vì mất thời gian tạo xong đối tượng rồi mới bắn. Mình sẽ tạo sẵn 10 viên đạn (10 đối tượng trong pool), sau khi bắn hết đạn nó sẽ reload trong 1 khoảng thời gian và đồng thời sẽ bỏ số viên đạn đã hủy vào trong băng đạn (bỏ đối tượng bị hủy khi va chạm object vào pool lại). Hy vọng lời giải thích này đủ cho mn hiểu công dụng của Object Pool Pattern là gì. Xin cảm ơn và chúc mn 1 ngày tốt lành.
cháu xem xong c1 rồi nhưng sang đây đến đoạn này ngợp quá chú ạ :((
chú ui cháu muốn hỏi là trong hàm Despawn ở trong script Spawner, cái phần tử (Transfrom obj) mình thêm vào thì cái Transfrom đấy là của obj Despawn hay của thằng cha nó là BulletSpawner vậy ạ
cháu cứ thắc mắc sao bên BulletDespawn không gọi được BulletSpawner.Instance.Despawn: là do Despawn chưa để public
Có thể sẽ giúp ích cho ai đó : mình đã bị lỗi ObjectDisposedException: SerializedProperty poolObjs.Array.data[2] has disappeared!
Mình đã thay this.poolObjs.Remove(poolObj) trong GetObjectFromPool() thành this.poolObjs.Remove(poolObjs[0]); và đã sửa được lỗi đó
học anh khó hiểu nhưng khi học xong xem lại cái mình code thì thấy đọc code rất nhanh, đúng đỉnh
em xem từ tập đầu đến tập này thì nghe a giảng trong video thì hiểu tầm > 90% nhưng mà tự nghĩ ra thì khó , kb sau cố gắng làm nhiều có đúc kết dc như này k
Thay lời cảm ơn cũng như nghe theo lời anh nói, em đã coi đi coi lại nhiều lần để tăng lượt view hihi
Đã xem nhiều series của a rồi nhưng mà nói thật là series này nếu như không có nền tảng trước đó về Unity hay lập trình thì như nước đổ lá khoai , qúa nhiều kiến thức :))) , nhưng nếu đã biết sơ trước rồi thì hiểu rất kỹ , đặt biệt là phần OOP
mn ơi cho em hỏi là loạt đoạn đầu của em không lỗi gì, nhưng khi sử dụng bullet ở trong poolObjs thì bắt đầu hiện ra lỗi "ObjectDisposedException: SerializedProperty poolObjs.Array.data[7] has disappeared!" và "type is not a supported pptr value
UnityEditor.RetainedMode:UpdateSchedulers ()" lỗi này là của editor đúng không ạ, chứ bullet vẫn hoạt động như bình thường.
Tutorial cơ bản mà lượng kiến thức khá là nhiều, trong đây không chỉ là code mà nó còn có nhiều kinh nghiệm tích luỹ về cách tổ chức code, cách triển khai… mà anh đã từng làm qua! Em có xem nhiều khoá khác nhưng vẫn mơ hồ về cách code, tổ chức project… may gặp được nguyên Tutorial siêu to khổng lồ này!
e chào a ạ, e muốn đăng kí hội viên để đc giải đáp thắc mắc mà k có thẻ visa thì có thể đăng kí bằng cách nào thế ạ ?
a sai bảo khó hiểu xem lại nhiều lần cho ảnh để tăng view à nhầm cho hiểu mọi người nhé
load game em nạp luôn 200 viên đạn vào trong pool xong dùng thì set Active true false
Video cực kì hữu ích, thanks a❤️❤️❤️
ko biết sao code y chang mà chỉnh Time shooting delay lên 1.0, 10.0 mà nó vẫn bắn như 0.02, bắn như laze, kiểm tra lại code ko khác j anh sai luôn, buồn thực sự
Thí dụ như chuyển sang scene khác thì a cho BulletSpawner là dontDestroyOnLoad không a? E làm spawn quái, cho dontDestroyOnLoad thì qua scene mới mấy con quái được tạo trong scene cũ cũng sẽ đi theo qua scene mới, bởi vì mấy con quái là object con của object spawner ?
Code mình giống và vẫn chạy bình thường nhưng sau tầm vài giây thì nó xuất hiện lỗi như này: ObjectDisposedException: SerializedProperty poolObjs.Array.data[24] has disappeared!
Làm lại lần 3 lại bị missing transform nhưng giờ mới hiểu là do cái Base trong hàm Despawnobject của BulletSpawn
Anh ơi tại sao của em khi nó cho vào poolObjs thì nó lại Missing(transform) ạ
cho em hỏi phút thứ 1:12 sao em bấm dấu chấm không ra instance v ạ
sau khi e code theo bài này xong thì viên đạn không tự hủy theo khoảng cách ko biết nguyên nhân tại sao lại vậy
nhưng mà em xem 1 lần là hiểu rồi :)))
may mà em xem mấy seri rồi mới tới cái video này, không là nổ não =)))))))))
em mới tập làm cho em hỏi lúc 2:09 a ấn vào cái hàm để nó sang nhanh cái file khác kiểu gì đấy ạ sao của e nó k ấn đc, em cảm ơn ạ
để cho … à mà thôi
ủa sao em ko thấy SetPositionAndRoutatio đâu vậy.
anh ơi em có thể liên kết đc vs cái holder r nhưng mà lại ko hiện lượng đạn trong pool obj 👉👈
Hay quá học thông não được nhiều ghê anh.Cảm ơn anh !! Nhưng mà cái này nó hơi rối não ghê
anh cho em hỏi là lúc mà bulletPrefab nó quá 70 nó tắt á anh, sao em là nó bị phá hủy luôn ạ anh
Để tăng lượt quêu =))
a ra video 16 đi ạ, video hay quá