将Interface当成Objc的Delegate使用
From 呼吸的草稿本
自己琢磨出来的方法,后果自负。嘿嘿。
//定义Delegate public interface ISelectableDelegate { void OnClick(Selectable obj); } //调用 public class Selectable : MonoBehaviour { public ISelectableDelegate delegateObj; void OnMouseDown() { delegateObj.OnClick(this); } } //响应 public class TurretManage : MonoBehaviour,ISelectableDelegate { public void OnClick(Selectable obj) { //Debug.Log(obj.ID); int index =-1; int cnt = 0; foreach (Selectable item in turretInterface) { if(item == obj){ index = cnt; break; } cnt += 1; } if (!isPlacingTurret && index != -1) StartPlaceTurret(turretPerfabs[index]); } }
