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); }