public void SetTarget(WorldObject worldObject) { // Unset old target. if (targetWorldObject != null) { WorldObjectText previousObjectText = targetWorldObject.GetComponentInParent <WorldObjectText>(); if (previousObjectText != null) { previousObjectText.currentColor = WorldObjectText.DEFAULT_COLOR; } } // Set new target. targetWorldObject = worldObject; if (targetWorldObject != null) { WorldObjectText worldObjectText = targetWorldObject.GetComponentInParent <WorldObjectText>(); if (worldObjectText != null) { worldObjectText.currentColor = WorldObjectText.SELECTED_COLOR; } // Send new target id to server. NetworkManager.ChannelSend(new TargetUpdateRequest(targetWorldObject.objectId)); } else // Target has been unset. { NetworkManager.ChannelSend(new TargetUpdateRequest(-1)); } // Update UI target information. StatusInformationManager.Instance.UpdateTargetInformation(targetWorldObject); }
private IEnumerator CreationQueueCoroutine() { while (true) { yield return(new WaitForSeconds(0.5f)); lock (WorldManager.UPDATE_OBJECT_LOCK) { foreach (KeyValuePair <long, CharacterDataHolder> entry in _characterCreationQueue) { // Object does not exist. Instantiate. GameObject newObj = CreateCharacter(entry.Value).gameObject; // Assign object id and name. WorldObject worldObject = newObj.AddComponent <WorldObject>(); worldObject.SetObjectId(entry.Key); worldObject.SetCharacterData(entry.Value); WorldObjectText worldObjectText = newObj.AddComponent <WorldObjectText>(); worldObjectText.SetWorldObjectName(entry.Value.GetName()); worldObjectText.SetAttachedObject(newObj); worldObjectText.SetWorldObject(worldObject); ((IDictionary <long, GameObject>)WorldManager.Instance.GetGameObjects()).Remove(entry.Key); WorldManager.Instance.GetGameObjects().TryAdd(entry.Key, newObj); ((IDictionary <long, CharacterDataHolder>)_characterCreationQueue).Remove(entry.Key); } } } }
private IEnumerator CreationQueueCoroutine() { while (true) { yield return(new WaitForSeconds(0.5f)); lock (WorldManager.updateObjectLock) { foreach (KeyValuePair <long, CharacterDataHolder> entry in characterCreationQueue) { // Object does not exist. Instantiate. GameObject newObj = CreateCharacter(entry.Value).gameObject; // Assign object id and name. WorldObject worldObject = newObj.AddComponent <WorldObject>(); worldObject.objectId = entry.Key; worldObject.characterData = entry.Value; WorldObjectText worldObjectText = newObj.AddComponent <WorldObjectText>(); worldObjectText.worldObjectName = entry.Value.GetName(); worldObjectText.attachedObject = newObj; worldObjectText.worldObject = worldObject; ((IDictionary <long, GameObject>)WorldManager.Instance.gameObjects).Remove(entry.Key); WorldManager.Instance.gameObjects.TryAdd(entry.Key, newObj); ((IDictionary <long, CharacterDataHolder>)characterCreationQueue).Remove(entry.Key); } } } }
private void Start() { Instance = this; gameObjects = new ConcurrentDictionary <long, GameObject>(); moveQueue = new ConcurrentDictionary <long, MovementHolder>(); animationQueue = new ConcurrentDictionary <long, AnimationHolder>(); characterUpdateQueue = new ConcurrentDictionary <long, CharacterDataHolder>(); deleteQueue = new List <long>(); if (MainManager.Instance.selectedCharacterData != null) { // Create player character. activeCharacter = CharacterManager.Instance.CreateCharacter(MainManager.Instance.selectedCharacterData); // Set camera target. CameraController.Instance.target = activeCharacter.transform; // Animations. activeCharacter.gameObject.AddComponent <AnimationController>(); // Movement. activeCharacter.gameObject.AddComponent <MovementController>(); // Add name text. WorldObjectText worldObjectText = activeCharacter.gameObject.AddComponent <WorldObjectText>(); worldObjectText.worldObjectName = ""; // MainManager.Instance.selectedCharacterData.GetName(); worldObjectText.attachedObject = activeCharacter.gameObject; // Send enter world to Network. NetworkManager.ChannelSend(new EnterWorldRequest(MainManager.Instance.selectedCharacterData.GetName())); } }
private void Start() { if (Instance != null) { return; } Instance = this; gameObjects = new ConcurrentDictionary <long, GameObject>(); moveQueue = new ConcurrentDictionary <long, MovementHolder>(); animationQueue = new ConcurrentDictionary <long, AnimationHolder>(); characterUpdateQueue = new ConcurrentDictionary <long, CharacterDataHolder>(); deleteQueue = new List <long>(); if (MainManager.Instance.selectedCharacterData != null) { // Create player character. activeCharacter = CharacterManager.Instance.CreateCharacter(MainManager.Instance.selectedCharacterData); // Tempfix. // TODO: Find why character initializes at 0, 0. // TODO: Try initialize with delay? Destroy(activeCharacter.gameObject); activeCharacter = CharacterManager.Instance.CreateCharacter(MainManager.Instance.selectedCharacterData); activeCharacter.gameObject.tag = "Player"; activeCharacter.gameObject.layer = 9; // Animations. activeCharacter.gameObject.AddComponent <AnimationController>(); // Movement. activeCharacter.gameObject.AddComponent <MovementController>(); // Add name text. WorldObjectText worldObjectText = activeCharacter.gameObject.AddComponent <WorldObjectText>(); worldObjectText.worldObjectName = ""; // MainManager.Instance.selectedCharacterData.GetName(); worldObjectText.attachedObject = activeCharacter.gameObject; // Update status information. StatusInformationManager.Instance.UpdatePlayerInformation(); // Send enter world to Network. NetworkManager.ChannelSend(new EnterWorldRequest(MainManager.Instance.selectedCharacterData.GetName())); // Send Character Inventory Request NetworkManager.ChannelSend(new CharacterInventoryRequest(MainManager.Instance.selectedCharacterData.GetName())); } }
private void Start() { if (Instance != null) { return; } Instance = this; _gameObjects = new ConcurrentDictionary <long, GameObject>(); _moveQueue = new ConcurrentDictionary <long, MovementHolder>(); _animationQueue = new ConcurrentDictionary <long, AnimationHolder>(); _characterUpdateQueue = new ConcurrentDictionary <long, CharacterDataHolder>(); _deleteQueue = new List <long>(); if (MainManager.Instance.GetSelectedCharacterData() != null) { // Create player character. _activeCharacter = CharacterManager.Instance.CreateCharacter(MainManager.Instance.GetSelectedCharacterData()); // Tempfix. // TODO: Find why character initializes at 0, 0. // TODO: Try initialize with delay? Destroy(_activeCharacter.gameObject); _activeCharacter = CharacterManager.Instance.CreateCharacter(MainManager.Instance.GetSelectedCharacterData()); // Animations. _activeCharacter.gameObject.AddComponent <AnimationController>(); // Movement. _activeCharacter.gameObject.AddComponent <MovementController>(); // Add name text. WorldObjectText worldObjectText = _activeCharacter.gameObject.AddComponent <WorldObjectText>(); worldObjectText.SetWorldObjectName(""); // MainManager.Instance.selectedCharacterData.GetName(); worldObjectText.SetAttachedObject(_activeCharacter.gameObject); // Update status information. StatusInformationManager.Instance.UpdatePlayerInformation(); // Send enter world to Network. NetworkManager.SendPacket(new EnterWorldRequest(MainManager.Instance.GetSelectedCharacterData().GetName())); } }