public void Load() { if (string.IsNullOrEmpty(npcPrefabName)) { npcObjPrefab = null; } if (npcObjPrefab == null) { if (!string.IsNullOrEmpty(npcPrefabName)) { npcObjPrefab = Resources.Load <GameObject>(npcPrefabDirectoryPath + "/" + npcPrefabName); } } if (NPCObj == null && npcObjPrefab != null) { NPCObj = GameObject.Instantiate <GameObject>(npcObjPrefab); NPCObj.transform.position = NPCLocation; NPCObj.transform.eulerAngles = NPCAngle; NPCObj.name = NPCName; NPCDataInfoMono npcDaatInfoMono = NPCObj.AddComponent <NPCDataInfoMono>(); npcDaatInfoMono.NPCDataInfo = this; } if (NPCSprite == null) { if (!string.IsNullOrEmpty(npcSpriteID)) { NPCSprite = SpriteManager.GetSrpite(npcSpriteID); } } }
private void OnTriggerEnter(Collider other) { int layer = (int)Mathf.Pow(2, other.gameObject.layer); if (layerMaks.value == (layerMaks.value | layer)) { IDataInfoType iDataInfoType = other.gameObject.GetComponent <IDataInfoType>(); if (iDataInfoType != null) { if (!GameObject.Equals(nowObj, other.gameObject)) { GameObject lastObj = nowObj; nowObj = other.gameObject; IPlayerState iPlayerState = GameState.Instance.GetEntity <IPlayerState>(); if (Type.Equals(iDataInfoType.T, typeof(StuffDataInfoMono))) { StuffDataInfoMono stuffDataInfoMono = iDataInfoType as StuffDataInfoMono; if (stuffDataInfoMono.StuffDataInfo.ResidualCount() <= 0) { //尝试刷新 stuffDataInfoMono.StuffDataInfo.Update(); } //如果大于零则表示可以 if (stuffDataInfoMono.StuffDataInfo.ResidualCount() > 0) { iPlayerState.TouchTargetStruct = new TouchTargetStruct() { ID = stuffDataInfoMono.StuffDataInfo.StuffID, TerrainName = stuffDataInfoMono.StuffDataInfo.SceneName, TouchTargetType = TouchTargetStruct.EnumTouchTargetType.Stuff }; } else { nowObj = lastObj; } } else if (Type.Equals(iDataInfoType.T, typeof(NPCDataInfoMono))) { NPCDataInfoMono npcDataInfoMono = iDataInfoType as NPCDataInfoMono; iPlayerState.TouchTargetStruct = new TouchTargetStruct() { ID = npcDataInfoMono.NPCDataInfo.NPCID, TerrainName = npcDataInfoMono.NPCDataInfo.SceneName, TouchTargetType = TouchTargetStruct.EnumTouchTargetType.NPC }; } else if (Type.Equals(iDataInfoType.T, typeof(ActionInteractiveDataInfoMono))) { ActionInteractiveDataInfoMono actionInteractiveDataInfoMono = iDataInfoType as ActionInteractiveDataInfoMono; iPlayerState.TouchTargetStruct = new TouchTargetStruct() { ID = actionInteractiveDataInfoMono.ActionInteractiveDataInfo.ActionInteractiveID, TerrainName = actionInteractiveDataInfoMono.ActionInteractiveDataInfo.SceneName, TouchTargetType = TouchTargetStruct.EnumTouchTargetType.Action }; } } } } }