Beispiel #1
0
    void Update()
    {
        //WaterShift();
        //WaterRotate();

        if (!pause)
        {
            // отдаём время в корабли, чтобы таймеры перезарядки и переключения работали
            ships[0].ProcessTimers(Time.deltaTime);
            ships[1].ProcessTimers(Time.deltaTime);
            // двигаем корабли
            ships[0].MoveShip();
            ships[1].MoveShip();
            // ------------------

            tr_whirpool.Rotate(Vector3.up, speed_whirpool * Time.deltaTime, Space.World);

            if (ships[0].ship_move == Enum_control.none)
            {
                if (input.isClick && !(ships[0].cannonReload || ships[0].cannonSwitch) && !CursorOverUI() /* */)

                {
                    if (!isAiming)
                    {
                        isAiming = true;
                        RaycastHit rh;
                        Ray        ray = Camera.main.ScreenPointToRay(input.position);
                        LayerMask  lm  = LayerMask.GetMask("whirpool");
                        if (CustomRaycast(ray, out rh, lm))
                        {
                            Vector3 v1 = rh.point;
                            wd.StartAiming(ships[0], v1);
                        }
                    }
                    else
                    {
                        RaycastHit rh;
                        Ray        ray = Camera.main.ScreenPointToRay(input.position);
                        LayerMask  lm  = LayerMask.GetMask("whirpool");
                        if (CustomRaycast(ray, out rh, lm))
                        {
                            Vector3 v1 = rh.point;
                            wd.ProcessAiming(ships[0], v1);
                            last_pos = v1;
                        }
                    }
                }
                else if (isAiming)
                {
                    isAiming = false;
                    wd.EndAiming(ships[0], last_pos);
                }
            }
        }
    }