blokada obrotu obiektu

Programowanie w Unity.

blokada obrotu obiektu

Postprzez Sacrebleu » 23 Wrz 2018, 21:19

Dzień dobry Państwu
mały problem , skrypt generalnie działa, ale niestety nie blokuje mi obrotu, bardzo proszę o jakiejś wskazówki , może w ogóle inaczej do tego podejść ?


Kod: Zaznacz wszystko
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

public class MovementAndroid : MonoBehaviour {

    [SerializeField]
    float movespeed = 15f;

    [SerializeField]
    float angularSpeed = 2f;

    float rotationX;

        Rigidbody2D rb;

       // Use this for initialization
   void Start () {
        rb = GetComponent<Rigidbody2D>();
      }
   
   // Update is called once per frame
   void Update () {

        rotationX = CrossPlatformInputManager.GetAxis("Horizontal");
        transform.Rotate(0, 0, rotationX * angularSpeed);
   
// tu nie działa
if (rotationX > 10)
            rotationX = 10;   


   }
    void FixedUpdate ()
    {
        rb.velocity = transform.up * movespeed;

    }
}
Sacrebleu
 
Posty: 1
Rejestracja: 23 Wrz 2018, 21:11
Has thanked: 0 time
Been thanked: 0 time

Re: blokada obrotu obiektu

Postprzez Ether_141 » 23 Wrz 2018, 22:15

Wydaje mi się, że problemem jest umiejscowienie tego warunku w skrypcie. Jak wygląda obecnie kolejność wykonywania działań w funkcji Update:
1. Zdobądź oś horizontal i przypisz do rotationX
2. Obróć obiekt o rotationX
3. Jeśli rotationX większa od 10 to rotatnionX = 10
I tak w kółko. Powinieneś sprawdzać rotationX przed obrotem obiektu. Wystarczy dać ten warunek nad transform.Rotate i powinno działać.
Awatar użytkownika
Ether_141
 
Posty: 375
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time

Re: blokada obrotu obiektu

Postprzez simple » 24 Wrz 2018, 12:27

on ci go niezablokuje, bo praktycznie ten warunek jest martwy.

powinno byc ten warunek po rotationX= a przed transform.Rotate:

rotationX = CrossPlatformInputManager.GetAxis("Horizontal");
if (rotationX > 10) rotationX = 10;
transform.Rotate(0, 0, rotationX * angularSpeed);
simple
 
Posty: 6
Rejestracja: 20 Wrz 2018, 09:10
Has thanked: 0 time
Been thanked: 0 time

Re: blokada obrotu obiektu

Postprzez Ether_141 » 24 Wrz 2018, 12:32

W jakim celu przepisałes to samo co ja? :)
Awatar użytkownika
Ether_141
 
Posty: 375
Rejestracja: 29 Sie 2015, 11:47
Has thanked: 0 time
Been thanked: 0 time


Wróć do Skrypty

Kto jest na forum

Użytkownicy przeglądający to forum: Bing [Bot] oraz 8 gości