private async void DropItem() { GameObject go = await AssetManager.InstantiateDropItem(itemId); DropItemController dropItemController = go.GetComponent <DropItemController>(); SceneManager.Instance.DropItemEnterSceneWithWorldPosition(dropItemController, sceneController.name, Tang.Tools.RandomPositionInCube(transform.position, transform.lossyScale) + new Vector3(0, 1, 0)); }
private void Start() { claw = GetComponent <AudioSource>(); agent = GetComponent <NavMeshAgent>(); animator = GetComponent <Animator>(); dropItemController = GetComponent <DropItemController>(); player = FindObjectOfType <PlayerController>().transform; healthBar = GetComponentInChildren <ZombieHealthBar>(); healthBar.SetSliderValue(currentHealth, maxHealth); agent.speed = currentSpeed; }
/// <summary> /// 初始化 /// </summary> public void Initialize() { m_SocketClient = new SocketClient(); m_SendWriter = new BinaryWriter(new MemoryStream(DEFAULT_SEND_BUFFER_SIZE)); m_NetControllers = new BetterList <BaseNetController>(); m_GatewayProtocolMapping = new ProtocolMapping(); m_GameServerProtocolMapping = new ProtocolMapping(); m_SendToGameServerWriter = new BinaryWriter(new MemoryStream(DEFAULT_SEND_BUFFER_SIZE)); m_PlayerToGSProto = SingleInstanceCache.GetInstanceByType <KC2G_PlayerToGS>(); m_Handshake = false; m_MessageToken = ""; m_MessageTokenHash = 0; m_MessageIndex = 0; ListenGateway(KG2C_Protocol.g2c_gs_to_player, OnReceivedGameServerMessage, typeof(KG2C_GSToPlayer)); #region NetController m_LoginController = new LoginController(); m_CharacterListController = new CharacterListController(); m_SceneController = new SceneController(); m_PlayerController = new PlayerController(); m_MailController = new MailController(); m_LogController = new LogController(); m_FriendController = new FriendController(); m_TeamController = new TeamController(); m_PackageController = new PackageController(); m_ShopController = new ShopController(); m_FoundryController = new FoundryController(); m_InstanceController = new InstanceController(); m_MissionController = new MissionController(); m_ChatContoller = new Game.Frame.Net.ChatController(); m_SkillController = new SkillController(); m_DropItemController = new DropItemController(); m_reliveController = new ReliveController(); m_MSAIBossController = new MSAIBossController(); #endregion }
//初始化 public override bool Init(InitBaseData initData, Action callback = null) { base.Init(initData); Reset(); var data = initData as InitDropItemData; if (data == null) { return(false); } mOwnerIsMe = false; mCanAutoPickup = true; HasAutoFightMove = false; var player = ObjManager.Instance.MyPlayer; if (player) { if (data.Owner.Contains(player.GetObjId())) { mOwnerIsMe = true; //mCanAutoPickup = true; } else if (data.Owner.Count <= 0) { //新增,这种是谁都可以拾取的 mOwnerIsMe = true; } } mOwnerPickUpProtectionTime = Game.Instance.ServerTime.AddSeconds(data.RemianSeconds); mLifeTime = DateTime.Now.AddSeconds(TotalLifeTime); //float height = GameLogic.Instance.Scene.GetTerrainHeight(data.TargetPos) + 0.1f; //mTargetPos = new Vector3(data.TargetPos.x, height, data.TargetPos.y); if (-1 == TerrainLayerMask) { TerrainLayerMask = LayerMask.GetMask(GAMELAYER.ShadowReceiver); } var ray = new Ray(new Vector3(data.TargetPos.x, 50, data.TargetPos.y), Vector3.down); RaycastHit hit; if (Physics.Raycast(ray, out hit, 80, TerrainLayerMask)) { mTargetPos = hit.point; mTargetPos.y += 0.1f; } else { var height = GameLogic.GetTerrainHeight(data.TargetPos.x, data.TargetPos.y) + 0.1f; mTargetPos = new Vector3(data.TargetPos.x, height, data.TargetPos.y); } LoadResourceAction = () => { if (State == ObjState.Deleted) { return; } State = ObjState.LoadingResource; LoadRes(() => { State = ObjState.Normal; if (true != data.PlayDrop) { //不需要播放掉落动画 Position = mTargetPos; mState = DropItemState.StayOnGround; // 初始特效 if (mTableData != null && mTableData.Quality > 0 && !mEffect) { var resource = Table.GetClientConfig(600 + mTableData.Quality); if (!string.IsNullOrEmpty(resource.Value)) { CreateQualityEffect(resource.Value, o => { if (DropItemState.StayOnGround != mState && DropItemState.Droping != mState) { ComplexObjectPool.Release(o); mEffect = null; } }); } } } else { //需要播放掉落动画 StartCoroutine(Delay()); mState = DropItemState.Delay; } if (null != callback) { callback(); } mController = mModel.GetComponent <DropItemController>(); if (null != mController) { mController.ShowModel(true); mController.ShowEffect(false); } }); }; EventDispatcher.Instance.AddEventListener(EquipBagNotFullChange.EVENT_TYPE, OnEquipRecycleSuccess); EventDispatcher.Instance.AddEventListener(UIEvent_PickSettingChanged.EVENT_TYPE, OnPickupSettingChanged); if (mOwnerIsMe) { ObjManager.Instance.MyPlayer.AutoCombat.AddDropPos(this); } return(true); }
public void Init() { iDrop = GetItemMock(); dIController = GetControllerMock(iDrop); }