コード例 #1
0
    /// <summary>
    /// Apply the movement determined from user input to the camera.
    /// </summary>
    private void UpdateCamera()
    {
        switch (objectSelectionTrackingState)
        {
            case ObjectSelectionTrackingState.None:
                MoveAndRotateCamera();
                break;

            case ObjectSelectionTrackingState.Tracking:
                if (lastSelectedObject == null) // If somehow we aren't tracking anything, abort tracking
                {
                    goto default;
                }
                bool finishedRotating = RotateTowardsSelectedObject();
                bool finishedMoving = MoveTowardsSelectedObject();

                if (finishedRotating && finishedMoving)
                {
                    objectSelectionTrackingState = ObjectSelectionTrackingState.None;
                }
                break;

            default: // Something crazy happened, abort any tracking
                objectSelectionTrackingState = ObjectSelectionTrackingState.None;
                break;
        }

        return;
    }
コード例 #2
0
    private void Start()
    {
        GameObject.Find("CustomNetworkMgr").GetComponent<NetworkManagerHUD>().showGUI = false;
        playerCamera = GetComponent<Camera>();
        playerCamera.enabled = isLocalPlayer;
        GetComponent<AudioListener>().enabled = isLocalPlayer;
        playerAudioSource = GetComponent<AudioSource>();
        objectSelectionTrackingState = ObjectSelectionTrackingState.None;
        lastSelectedObject = null;

        if (isLocalPlayer)
        {
            Game.singleton.local_player = gameObject;
        }

        return;
    }
コード例 #3
0
    /// <summary>
    /// Check if the user has selected a selectable item and snap the camera to it.
    /// </summary>
    private void CheckForObjectSelect()
    {
        if (objectSelectionTrackingState != ObjectSelectionTrackingState.None) // Ignore selection while tracking
        {
            return;
        }

        Ray ray = playerCamera.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;

        if (SelectObject() && Physics.Raycast(ray, out hitInfo, playerCamera.farClipPlane))
        {
            lastSelectedObject = hitInfo.transform.FindChild(selectableTag);
            objectSelectionTrackingState = ObjectSelectionTrackingState.Tracking;
        }

        return;
    }
コード例 #4
0
    /// <summary>
    /// Check if the user has selected a selectable item and snap the camera to it.
    /// </summary>
    private void CheckForObjectSelect()
    {
        if (objectSelectionTrackingState != ObjectSelectionTrackingState.None) // Ignore selection while tracking
        {
            return;
        }

        Ray ray = playerCamera.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;

        if (SelectObject() && Physics.Raycast(ray, out hitInfo, playerCamera.farClipPlane))
        {
            Transform selectableChild = hitInfo.transform.FindChild(selectableTag);

            if (selectableChild != null)
            {
                playerAudioSource.PlayOneShot(objectSelectAudioClip);
                lastSelectedObject = selectableChild;
                objectSelectionTrackingState = ObjectSelectionTrackingState.Tracking;
                Ship ship = lastSelectedObject.GetComponentInParent<Ship>();
                if (ship && ship.player == Game.singleton.local_player)
                {
                    BenPrimeTest_GameDirector.singleton.setSelectedShip(ship);
                }
            }
        }

        return;
    }
コード例 #5
0
 /// <summary>
 /// Perform initialization on the camera object.
 /// </summary>
 private void Start()
 {
     playerCamera = GetComponent<Camera>();
     playerCamera.enabled = true;
     objectSelectionTrackingState = ObjectSelectionTrackingState.None;
     lastSelectedObject = null;
     return;
 }