Exemplo n.º 1
0
    void FireStrikeMarker()
    {
        GameObject mkr = Instantiate(markerPrefab, transform.position, transform.rotation);

        marker = mkr.GetComponent <StrikeMarker>();
        marker.ExpulsionForce = 100;
    }
Exemplo n.º 2
0
    private void HandlePositionInput()
    {
        if (MouseHasMoved() && !isStriking)
        {
            ray = camera.ScreenPointToRay(Input.mousePosition);
            RaycastHit[] hits = Physics.RaycastAll(ray);

            if (Array.Exists(hits, hit => hit.collider.gameObject == cueBall))
            {
                hit           = Array.Find(hits, hit => hit.collider.gameObject == cueBall);
                pointToStrike = hit.point;

                if (!markerInstance)
                {
                    markerInstance = Instantiate <StrikeMarker>(strikePointMarker);
                    markerInstance.transform.position = pointToStrike;
                    markerInstance.CompleteSetup     += HandleForceSetupCompletion;
                }
                else
                {
                    markerInstance.transform.position = pointToStrike;
                }

                forceVector = (cueBall.transform.position - markerInstance.transform.position);
                markerInstance.transform.LookAt(cueBall.transform.position);
            }
            else
            {
                if (markerInstance != null)
                {
                    GameObject.Destroy(markerInstance.gameObject);
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.Mouse0) && markerInstance != null)
        {
            controlStage = ControlStage.SetForce;
            markerInstance.SetPosition();
        }
    }