Beispiel #1
0
    //Что-то устанавливают
    #region Setters

    public void SetLockControl(bool t) // Вкл/выкл управление кораблём
    {
        isControlLock = t;
        if (!t)
        {
            FindClosestPoint(); // Если включают управление, то ищем ближнюю точку
        }
        Engine.SetLockMove(t);
        RotationEngine.SetLockRotate(t);
    }
Beispiel #2
0
    public IEnumerator IStarshipMove(Starship starship)
    {
        Starship_Engine         starship_Engine         = starship.GetComponent <Starship_Engine>();
        Starship_RotationEngine starship_RotationEngine = starship.GetComponent <Starship_RotationEngine>();
        Rigidbody rigidbody = starship.GetComponent <Rigidbody>();

        ToStartPosition(starship);

        OnStartMove?.Invoke();
        starship_Engine.SetLockMove(false);
        while (Vector3.Distance(starship.transform.position, endTr.position) > 1f)
        {
            starship_RotationEngine.RotateToTargetWithPlaneLimiter(endTr.position + endTr.forward);

            starship_Engine.Move(MoveDirectionConsideringAngle(1, Vector3.Angle((endTr.position - rigidbody.velocity - starship.transform.position).normalized, starship.RotationPoint.forward))); // Двигаемся

            yield return(new WaitForFixedUpdate());
        }
        starship_Engine.SetLockMove(true);
        OnEndMove?.Invoke();
    }
Beispiel #3
0
    internal void SetLockControl(bool isLockMove, bool isLockRotate, bool isLockShoot)
    {
        this.isLockMove   = isLockMove;
        this.isLockRotate = isLockRotate;
        this.isLockShoot  = isLockShoot;
        Guns.SetLockMove(isLockMove);
        engine.SetLockMove(isLockMove);
        rotationEngine.SetLockRotate(isLockRotate);

        if (isLockMove)
        {
            SwitchFlightMode(currentFlightMode, FlightMode.Normal);
        }
    }
Beispiel #4
0
 internal void SetControlLock(bool t)
 {
     isControlLock = t;
     Engine.SetLockMove(t);
     RotationEngine.SetLockRotate(t);
 }