Mathf.Clamp вне GetAxis
Добавлено: 04 июл 2017, 01:43
добрый...,
есть много мануалов, но все какие видел - на GetAxis(es) направлены,
пытался сделать так что бы объект вращался во всех направлениях , но с ограничениями по осям 'x' и 'z' .
невыходит, "каменный цветок"
(пробывал и под GetAxis Cover сделать,тож не вышло..)
//тут нуже смайлик, который второй кривой рукой молотком себе по голове лупит
[syntax=][/syntax]
есть много мануалов, но все какие видел - на GetAxis(es) направлены,
пытался сделать так что бы объект вращался во всех направлениях , но с ограничениями по осям 'x' и 'z' .
невыходит, "каменный цветок"
(пробывал и под GetAxis Cover сделать,тож не вышло..)
//тут нуже смайлик, который второй кривой рукой молотком себе по голове лупит
Синтаксис:
Используется csharp
[/syntax=csharp]
using UnityEngine;
using System.Collections;
public class ws : MonoBehaviour {
private GameObject player;
public float minkren = -100f;//величина ограничения наклона
public float maxkren= 100f;//величина ограничения наклона
public static float xrot = 200f; //скорость вращения по х
public static float yrot = 200f; //скорость вращения по y
public static float zrot = 200f;//скорость вращения по z
public static float x ; //угол поворота по оси x
public static float y ; //угол поворота по оси y
public static float z ; //угол поворота по оси z
public int rotation = 250; //Скорость поворота
Quaternion limit2; // лимит наклона
void Start () {
player = (GameObject)this.gameObject;
}
void Update () {
Quaternion rotate = Quaternion.Euler (x, y, z);// координируем данные
if (Input.GetKey (KeyCode.W)) {
transform.rotation *= Quaternion.Euler (xrot * Time.deltaTime, y, z); //получаем прооперированный(*) угол полученный клавишей по ох
limit2 =transform.rotation ; //скидываем полученные данные на лимит2
rotate.x = Mathf.Clamp ( limit2.x, minkren, maxkren); //ограничиваем эти данные и передаём их к rotate (по идее только х ограничиваем)
transform.rotation = rotate; //и отдаём эти координаты на базу..
}
if (Input.GetKey (KeyCode.S)) { //тут всё тоже самое
transform.rotation *= Quaternion.Euler (-xrot * Time.deltaTime, y, z);
limit2 =transform.rotation ;
rotate.x = Mathf.Clamp ( limit2.x, minkren, maxkren);
transform.rotation = rotate;
}
if (Input.GetKey(KeyCode.A)) //ниже, просто вращаем без всяких ограничений..
transform.rotation *=Quaternion.Euler(x, yrot * Time.deltaTime,z);
if (Input.GetKey (KeyCode.D))
transform.rotation *= Quaternion.Euler (x, -yrot * Time.deltaTime, z);
if (Input.GetKey(KeyCode.Q))
transform.rotation *= Quaternion.Euler(x,y, zrot*Time.deltaTime );
if (Input.GetKey (KeyCode.E))
transform.rotation *= Quaternion.Euler (x, y, -zrot * Time.deltaTime);
}
}
[syntax=]
using UnityEngine;
using System.Collections;
public class ws : MonoBehaviour {
private GameObject player;
public float minkren = -100f;//величина ограничения наклона
public float maxkren= 100f;//величина ограничения наклона
public static float xrot = 200f; //скорость вращения по х
public static float yrot = 200f; //скорость вращения по y
public static float zrot = 200f;//скорость вращения по z
public static float x ; //угол поворота по оси x
public static float y ; //угол поворота по оси y
public static float z ; //угол поворота по оси z
public int rotation = 250; //Скорость поворота
Quaternion limit2; // лимит наклона
void Start () {
player = (GameObject)this.gameObject;
}
void Update () {
Quaternion rotate = Quaternion.Euler (x, y, z);// координируем данные
if (Input.GetKey (KeyCode.W)) {
transform.rotation *= Quaternion.Euler (xrot * Time.deltaTime, y, z); //получаем прооперированный(*) угол полученный клавишей по ох
limit2 =transform.rotation ; //скидываем полученные данные на лимит2
rotate.x = Mathf.Clamp ( limit2.x, minkren, maxkren); //ограничиваем эти данные и передаём их к rotate (по идее только х ограничиваем)
transform.rotation = rotate; //и отдаём эти координаты на базу..
}
if (Input.GetKey (KeyCode.S)) { //тут всё тоже самое
transform.rotation *= Quaternion.Euler (-xrot * Time.deltaTime, y, z);
limit2 =transform.rotation ;
rotate.x = Mathf.Clamp ( limit2.x, minkren, maxkren);
transform.rotation = rotate;
}
if (Input.GetKey(KeyCode.A)) //ниже, просто вращаем без всяких ограничений..
transform.rotation *=Quaternion.Euler(x, yrot * Time.deltaTime,z);
if (Input.GetKey (KeyCode.D))
transform.rotation *= Quaternion.Euler (x, -yrot * Time.deltaTime, z);
if (Input.GetKey(KeyCode.Q))
transform.rotation *= Quaternion.Euler(x,y, zrot*Time.deltaTime );
if (Input.GetKey (KeyCode.E))
transform.rotation *= Quaternion.Euler (x, y, -zrot * Time.deltaTime);
}
}
[syntax=]