Example #1
0
    private void RefreshFishList()
    {
        if (_isSelecting && _fishes != null && _fishes.Count > 0)
        {
            _selection = _fishes[x * 3 + y];
        }
        _fishes = FC.GetCloseFishList();
        for (int i = 0; i < _fishInFrame.Count; i++)
        {
            Destroy(_fishInFrame[i]);
        }
        _fishInFrame = new List <GameObject>();
        for (int i = 0; i < 9; i++)
        {
            _frames[i].GetComponent <RawImage>().material = null;
            var fish = _fishes[i];
            switch (fish.Fish.name.Substring(0, fish.Fish.name.IndexOf('(')))
            {
            case "bad fish":
                var obj1 = Instantiate(BadFishInFrame);
                obj1.transform.parent        = _frames[i].transform;
                obj1.transform.localRotation = Quaternion.identity;
                obj1.transform.localPosition = Vector3.zero;
                _fishInFrame.Add(obj1);
                break;

            case "Goldfish_01":
                var obj2 = Instantiate(GoldFishInFrame);
                obj2.transform.parent        = _frames[i].transform;
                obj2.transform.localRotation = Quaternion.identity;
                obj2.transform.localPosition = Vector3.zero;
                _fishInFrame.Add(obj2);
                break;

            case "Seaweed":
                var obj4 = Instantiate(SeaweedInFrame);
                obj4.transform.parent        = _frames[i].transform;
                obj4.transform.localRotation = Quaternion.identity;
                obj4.transform.localPosition = Vector3.zero;
                _fishInFrame.Add(obj4);
                break;

            case "Whale":
                var obj3 = Instantiate(WhaleInFrame);
                obj3.transform.parent        = _frames[i].transform;
                obj3.transform.localRotation = Quaternion.identity;
                obj3.transform.localPosition = Vector3.zero;
                _fishInFrame.Add(obj3);
                break;

            case "Bob":
                var obj5 = Instantiate(BobInFrame);
                obj5.transform.parent        = _frames[i].transform;
                obj5.transform.localRotation = Quaternion.identity;
                obj5.transform.localPosition = Vector3.zero;
                _fishInFrame.Add(obj5);
                break;
            }
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (bodyTransform.position.y < 47.5f)
        {
            if (firstAboveHorror == false)
            {
                BGM.clip = Horror;
                BGM.Play();
                firstAboveHorror = true;
                firstUnderHorror = false;
            }
        }
        else
        {
            if (firstUnderHorror == false)
            {
                BGM.clip = Relax;
                BGM.Play();
                firstAboveHorror = false;
                firstUnderHorror = true;
            }
        }
        if (!Util.IsSwiming)
        {
            if (firstAboveWater == false)
            {
                aboveOrUnderWaterAudio.clip = aboveWater;
                aboveOrUnderWaterAudio.Play();
                firstAboveWater = true;
                firstUnderWater = false;
            }
            return;
        }
        if (firstUnderWater == false)
        {
            firstAboveWater             = false;
            firstUnderWater             = true;
            aboveOrUnderWaterAudio.clip = underWater;
            aboveOrUnderWaterAudio.Play();
        }
        if (TargetFish != null)
        {
            if (OVRInput.Get(OVRInput.RawButton.RHandTrigger))
            {
                _swimingTime += Time.deltaTime / 2;
                var dist = (TargetFish.Fish.transform.position - (TargetFish.Fish.transform.forward * -5f) - bodyTransform.position).magnitude;
                if (dist > 10f * TargetFish.PosFactor)
                {
                    _tempTransform.LookAt(TargetFish.Fish.transform);
                    var rotation = Quaternion.Slerp(bodyTransform.rotation, _tempTransform.rotation, 0.02f);
                    bodyTransform.rotation = rotation;
                }
                else
                {
                    TargetFish = null;
                }
                var gggg = Mathf.Abs(Mathf.Sin(Mathf.PI / 2 - _swimingTime % (Mathf.PI / 2)));
                if (TargetFish == null)
                {
                    SimpleForward();
                }
                else
                {
                    var speed = Mathf.Lerp(0f, 0.1f, dist - 10f * TargetFish.PosFactor) * gggg / 2;
                    bodyTransform.position = new Vector3(
                        bodyTransform.position.x + bodyTransform.forward.x * speed,
                        bodyTransform.position.y + bodyTransform.forward.y * speed,
                        bodyTransform.position.z + bodyTransform.forward.z * speed
                        );
                }
            }
            else
            {
                _swimingTime = 0;
            }
        }
        else
        {
            SimpleForward();
        }

        if (OVRInput.Get(OVRInput.RawButton.LIndexTrigger) && !OVRInput.Get(OVRInput.RawButton.LHandTrigger))
        {
            bodyTransform.position = new Vector3(bodyTransform.position.x, bodyTransform.position.y + 0.05f, bodyTransform.position.z);
        }
        if (!OVRInput.Get(OVRInput.RawButton.LIndexTrigger) && OVRInput.Get(OVRInput.RawButton.LHandTrigger))
        {
            //bodyTransform.position = new Vector3(bodyTransform.position.x, bodyTransform.position.y - 0.05f, bodyTransform.position.z);
            //Debug.Log("LForward " + LHand.forward);
            _tempTransform.LookAt(bodyTransform.position + LHand.forward);
            bodyTransform.rotation = Quaternion.Slerp(bodyTransform.rotation, _tempTransform.rotation, 0.02f);
        }
        if (OVRInput.Get(OVRInput.RawButton.LIndexTrigger) && OVRInput.Get(OVRInput.RawButton.LHandTrigger))
        {
            var rotation = bodyTransform.rotation.eulerAngles;
            bodyTransform.rotation = Quaternion.Slerp(bodyTransform.rotation, Quaternion.Euler(0, rotation.y, 0), 0.02f);
        }
        var lJoyStickVector = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick);

        if (bodyTransform.position.y < 54.5)
        {
            //bodyTransform.RotateAround(bodyTransform.position, bodyTransform.right, lJoyStickVector.y);
            //bodyTransform.RotateAround(bodyTransform.position, bodyTransform.up, lJoyStickVector.x);
        }
        else
        {
            bodyTransform.rotation = Quaternion.Slerp(bodyTransform.rotation, Quaternion.Euler(0, bodyTransform.rotation.eulerAngles.y, 0), 0.02f);
        }
        if (OVRInput.Get(OVRInput.RawButton.LThumbstick) && bodyTransform.position.y > 54.5f)
        {
            Util.IsSwiming = false;
        }
    }
Example #3
0
    // Update is called once per frame
    void Update()
    {
        if (_timeLock > 0)
        {
            _timeLock -= Time.deltaTime;
        }
        if (!Util.IsSwiming)
        {
            return;
        }
        Panel.SetActive(true);
        if (Vector3.Dot(EyeTransform.forward, Panel.transform.forward) < 0.6f ||
            (Vector3.Dot((Panel.transform.position - EyeTransform.position), EyeTransform.forward) * (Panel.transform.position - EyeTransform.position).normalized).magnitude < 0.25 ||
            Vector3.Dot(EyeTransform.up, Panel.transform.up) < 0.8f)
        {
            Panel.SetActive(false);
            PC.TargetFish = null;
            return;
        }
        RefreshFishList();
        if (_isSelecting && _selection != null)
        {
            x = y = -1;
            for (int i = 0; i < _fishes.Count; i++)
            {
                if (_fishes[i] == _selection)
                {
                    x = i / 3;
                    y = i % 3;
                }
            }
            if (x == -1 && y == -1)
            {
                _isSelecting  = false;
                PC.TargetFish = null;
                x             = y = 0;
            }
            else
            {
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                PC.TargetFish = _selection;
            }
        }
        var rightControl = OVRInput.Get(OVRInput.Axis2D.SecondaryThumbstick);
        var rightPress   = OVRInput.Get(OVRInput.RawButton.RThumbstick);

        if (rightPress)
        {
            _isSelecting  = false;
            _selection    = null;
            PC.TargetFish = null;
        }
        else
        if (rightControl.x > 0.8f)
        {
            if ((_selection == null) || (_isSelecting == false))
            {
                x = y = 0;
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                _selection    = _fishes[x * 3 + y];
                PC.TargetFish = _selection;
                _timeLock     = 1.0f;
                _isSelecting  = true;
            }
            else
            //right
            if (_lastDirection != Direction.Right || _timeLock < 0)
            {
                _lastDirection = Direction.Right;
                _timeLock      = 1.0f;
                _frames[x * 3 + y].GetComponent <RawImage>().material = null;
                y++;
                if (y > 2)
                {
                    y = 0; x++;
                }
                x %= 3;
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                PC.TargetFish = _selection;
                _isSelecting  = true;
            }
        }
        else if (rightControl.x < -0.8f)
        {
            if ((_selection == null) || (_isSelecting == false))
            {
                x = y = 2;
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                _selection    = _fishes[x * 3 + y];
                PC.TargetFish = _selection;
                _timeLock     = 1.0f;
                _isSelecting  = true;
            }
            else
            //left
            if (_lastDirection != Direction.Left || _timeLock < 0)
            {
                _lastDirection = Direction.Left;
                _timeLock      = 1.0f;
                _frames[x * 3 + y].GetComponent <RawImage>().material = null;
                y--;
                if (y < 0)
                {
                    y = 2; x--;
                }
                if (x < 0)
                {
                    x = 2; y = 2;
                }
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                PC.TargetFish = _selection;
                _isSelecting  = true;
            }
        }
        else if (rightControl.y > 0.8f)
        {
            if ((_selection == null) || (_isSelecting == false))
            {
                x = y = 2;
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                _selection    = _fishes[x * 3 + y];
                PC.TargetFish = _selection;
                _timeLock     = 1.0f;
                _isSelecting  = true;
            }
            else
            //up
            if (_lastDirection != Direction.Up || _timeLock < 0)
            {
                _lastDirection = Direction.Up;
                _timeLock      = 1.0f;
                _frames[x * 3 + y].GetComponent <RawImage>().material = null;
                x--;
                if (x < 0)
                {
                    x = 2; y--;
                }
                if (y < 0)
                {
                    y = 2;
                }
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                PC.TargetFish = _selection;
                _isSelecting  = true;
            }
        }
        else if (rightControl.y < -0.8f)
        {
            if ((_selection == null) || (_isSelecting == false))
            {
                x = y = 0;
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                _selection    = _fishes[x * 3 + y];
                PC.TargetFish = _selection;
                _timeLock     = 1.0f;
                _isSelecting  = true;
            }
            else
            if (_lastDirection != Direction.Down || _timeLock < 0)
            {
                //down
                _lastDirection = Direction.Down;
                _timeLock      = 1.0f;
                _frames[x * 3 + y].GetComponent <RawImage>().material = null;
                x++;
                if (x > 2)
                {
                    x = 0; y++;
                }
                if (y > 2)
                {
                    y = 0;
                }
                _frames[x * 3 + y].GetComponent <RawImage>().material = SelectedMaterial;
                PC.TargetFish = _selection;
                _isSelecting  = true;
            }
        }
        else
        {
            _lastDirection = Direction.None;
        }
        if (_selection != null && _isSelecting != false)
        {
            TargetPointer.SetActive(true);
            TargetPointer.transform.LookAt(_selection.Fish.transform);
        }
        else
        {
            TargetPointer.SetActive(false);
        }
    }
Example #4
0
 public void SetSelectingStatusNull()
 {
     _selection   = null;
     _isSelecting = false;
 }