假設我有一個Item基類
public class Item
{
var SomeVariable;
var OtherVariable;
public Item(some parameter)
{
}
}
和一個名為 Gun 的派生類
public class Gun : Item
{
var SomeVariable;
public Gun(Some Parameter)
{
}
}
并且Item類 Constructor 表示為Inventory. 就像當玩家拿起GameObject帶有Item類附加的玩家時,它將Inventory使用方法添加到Add Item
public bool AddItem(Item _item, int _amount)
{
//add Item to Inventory object
}
如您所見,該方法Add Item用作Item引數,因此當Gun GameObject玩家拾取它不會添加時,inventory我需要更改系統的作業方式還是可以修復它?
uj5u.com熱心網友回復:
以這種方式從派生類呼叫基建構式:
public class Gun : Item
{
var SomeVariable;
public Gun(Some Parameter) : base(Some Parameter)
{
}
}
但目前尚不清楚實際問題是什么,因為您不需要初始化傳入Item的AddItem. 只需將其放入您的庫存實體。假設您在那里有一個實體:
public bool AddItem(Item item, int amount)
{
inventory.Add(item, amount); // just guessing
}
因此,當玩家拾取 Gun GameObject 時,它不會添加到庫存中,我需要更改系統的作業方式還是可以修復它?
我想我現在明白你的誤解了。由于Gun實際是一個Item,您可以AddItem使用Gun實體呼叫。這就是繼承的好處之一。
AddItem(new Gun(Some Parameter), 1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/437696.html
