Exemplo n.º 1
0
        protected override void DoSetData(PointerData data)
        {
            var entityId = CommonCastData.EntityId(data.IdList);
            var key      = CommonCastData.Key(data.IdList);
            var tip      = CommonCastData.Tip(data);
            var entity   = _sceneObjectContext.GetEntityWithEntityKey(new EntityKey(entityId, (short)EEntityType.SceneObject));

            if (null == entity)
            {
                return;
            }
            var player = _playerContext.flagSelfEntity;

            if (null == player)
            {
                return;
            }
            if (!entity.IsCanPickUpByPlayer(player))
            {
                return;
            }
            if (IsUntouchableOffGround(player, data.Position, entity.rawGameObject.Value))
            {
                return;
            }
            if (player.hasRaycastTarget)
            {
                player.raycastTarget.Key = key;
            }
            else
            {
                player.AddRaycastTarget(key);
            }
            Tip = tip;
        }
        public GameObject Get(int entityId, int key, string tip)
        {
            if (_gameObjectPool.Count < 1)
            {
                _gameObjectPool.Enqueue(MakeCastTarget());
            }
            var target = _gameObjectPool.Dequeue();

            target.gameObject.SetActive(true);
            CommonCastData.Make(target, entityId, key, tip);
            return(target.gameObject);
        }