Hello! So I got the script and I’m completely lost and don’t know how to fix this error, i searched on the internet for a long time and didn’t find anything useful. Thanks!
The error is :
EquipmentContainer.cs(8,10): CS0104:
StateMachineBehaviour
is an ambiguous reference betweenUnityEngine.StateMachineBehaviour
andStateMachine.StateMachineBehaviour
.
using UnityEngine;
using System.Collections;
using StateMachine;
using System.Linq;
public class EquipmentContainer : UIContainer {
private StateMachineBehaviour behaviour;
public override BaseItem Replace (int slot, BaseItem item)
{
GameObject unEquip = new GameObject ("OnUnEquip");
StateMachineBehaviour unEquipBehaviour = unEquip.AddComponent<StateMachineBehaviour> ();
if(items[slot] != null){
unEquipBehaviour.SetStateMachine((items [slot] as EquipmentItem).onUnEquip);
unEquipBehaviour.executingStateMachine.SetParameter ("UsableItem", items[slot],true);
}
GameObject equip = new GameObject ("OnEquip");
StateMachineBehaviour equipBehaviour = equip.AddComponent<StateMachineBehaviour> ();
if (item != null) {
equipBehaviour.SetStateMachine((item as EquipmentItem).onEquip);
equipBehaviour.executingStateMachine.SetParameter ("UsableItem", item,true);
}
BaseItem prev = items[slot];
items[slot] = item;
return prev;
}
public EquipmentSlot GetEquipmentSlot(EquipmentRegion region){
foreach (EquipmentSlot slot in slots) {
if(slot.region == region){
return slot;
}
}
return null;
}
public int GetEquipmentSlotId(EquipmentRegion region){
foreach (EquipmentSlot slot in slots) {
if(slot.region == region){
return slot.slot;
}
}
return -1;
}
public EquipmentItem GetItem(EquipmentRegion region){
EquipmentSlot slot = GetEquipmentSlot (region);
return slot.observedItem != null?(EquipmentItem)slot.observedItem:null;
}
public override string Serialize ()
{
string itemData = string.Empty;
for (int i=0; i<items.Count; i++) {
BaseItem item=items*;*
-
if(item != null){*
-
itemData+= i.ToString()+";"+item.Serialize()+"/";*
-
}*
-
}*
-
return itemData;*
-
}*
-
public override void Deserialize (string data)*
-
{*
-
string[] split = data.Split ('/');*
-
foreach (string itemSplit in split) {*
-
if(!string.IsNullOrEmpty(itemSplit)){*
-
string[] itemDataSplit=itemSplit.Split(';');*
-
if(itemDataSplit.Length>1){*
-
int slot=System.Convert.ToInt32(itemDataSplit[0]);*
-
string itemName=itemDataSplit[1];*
-
EquipmentItem item=(EquipmentItem)(ItemDatabase.Instance != null?ItemDatabase.Instance.GetItem(itemName.Trim()):null);*
-
if(item != null){*
-
EquipmentItem mItem=(EquipmentItem)ScriptableObject.Instantiate(item);*
-
mItem.Deserialize(itemDataSplit[3]);*
-
Replace(slot,mItem);*
-
}*
-
}*
-
} *
-
}*
-
}*
}