Ejemplo n.º 1
0
        private void Update(EvaluationContext context)
        {
            if (!CameraReference.IsConnected)
            {
                CameraReference.DirtyFlag.Clear();
                return;
            }

            var obj = CameraReference.GetValue(context);

            if (obj == null)
            {
                Log.Warning("Camera reference is undefined");
                return;
            }

            if (obj is not ICameraPropertiesProvider camera)
            {
                Log.Warning("Can't GetCamProperties from invalid reference type", SymbolChildId);
                return;
            }

            if (_previousBufferInitialized)
            {
                ResourceManager.Instance().SetupConstBuffer(_bufferContent, ref PreviousBuffer.Value);
                PreviousBuffer.Value.DebugName = nameof(TransformsConstBuffer);
                PreviousBuffer.DirtyFlag.Clear();
            }

            _bufferContent = new TransformsConstBuffer.TransformBufferLayout(camera.CameraToClipSpace, camera.WorldToCamera, camera.LastObjectToWorld);
            ResourceManager.Instance().SetupConstBuffer(_bufferContent, ref Buffer.Value);
            Buffer.Value.DebugName     = nameof(TransformsConstBuffer);
            _previousBufferInitialized = true;
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public void Tick()
        {
            if (Input.GetMouseButtonDown(0))
            {
                Ray ray = CameraReference.ScreenPointToRay(Input.mousePosition);

                //TODO: We should enumerate the layers
                //5 is UI right now.
                int resultCount = Physics.RaycastNonAlloc(ray, CachedHitResults, 1000.0f, 1 << 5);                 //5th

                if (resultCount == 0)
                {
                    Debug.Log($"No clicked on entities");
                    return;
                }

                //Otherwise, we have some hits. Let's check them.
                //TODO: This is kind of slow.
                GameObject rootGameObject = CachedHitResults[0].transform.GetRootGameObject();

                if (GameObjectToEntityMappable.ObjectToEntityMap.ContainsKey(rootGameObject))
                {
                    NetworkEntityGuid entity = GameObjectToEntityMappable.ObjectToEntityMap[rootGameObject];

                    //If we actually have interacted with an entity that is on the UI layer
                    //then we need to dispatch the event.
                    Debug.Log($"Clicked on Entity: {entity.EntityType}:{entity.EntityId}");
                }
                else
                {
                    Debug.Log($"No entity. Clicked on: {rootGameObject.name}");
                }
            }
        }
Ejemplo n.º 3
0
    // Use this for initialization
    void Start()
    {
        //To move to its postion respect to the player
        Vector3 idealPos = targetPlayer.position +
                           idealOffset.x * targetPlayer.right +
                           idealOffset.y * targetPlayer.up +
                           idealOffset.z * targetPlayer.forward;

        transform.position = idealPos;

        //To look at the palyer
        targetPos = targetPlayer.TransformPoint(targetOffset);
        transform.LookAt(targetPos, targetPlayer.up);

        //
        currentTarget = targetPlayer;
        // TODO: Preferiría no hacerlo así
        // Puede dar problemas si metemos más de una cámara
        //cameraComponent = GetComponent<Camera>();
        cameraComponent = FindObjectOfType <Camera>();
        //
        inputManager = FindObjectOfType <InputManager>();
        //
        //originalY = targetOffset.y;

        //
        //gameManager = FindObjectOfType<GameManager>();
        //
        positionWithoutCorrection = transform.position;
        //
        cameraReference = FindObjectOfType <CameraReference>();
        // Ojo con ele enemy analyzer
        // Al ser pasivo se puede quedar activado entre escenas
        EnemyAnalyzer.Release();
    }
Ejemplo n.º 4
0
 private void Awake()
 {
     if (Instance != null)
     {
         UnityEngine.Debug.LogError("Multiple CameraReferences detected");
     }
     Instance = this;
 }
Ejemplo n.º 5
0
 // Start is called before the first frame update
 protected virtual void Start()
 {
     player          = FindObjectOfType <RobotControl>();
     audioSource     = GetComponent <AudioSource>();
     levelManager    = FindObjectOfType <ProvLevelManager>();
     carolHelp       = FindObjectOfType <CarolBaseHelp>();
     cameraReference = FindObjectOfType <CameraReference>();
     enemyManager    = FindObjectOfType <EnemyManager>();
     //
     if (carolStepObjects.Length > 0)
     {
         carolHelp.SetStepObjects(carolStepObjects);
     }
 }
Ejemplo n.º 6
0
 private void Start()
 {
     sp           = FindObjectOfType <SpringCamera>();
     cr           = FindObjectOfType <CameraReference>();
     inputManager = FindObjectOfType <InputManager>();
 }
Ejemplo n.º 7
0
 public Bullet Execute(Transform player, out Vector2 dir)
 {
     dir = CameraReference.MouseVec(player.position);
     return(Execute(player, dir));
 }