Проблема в том, что падает фпс, как начинаешь двигаться, примерно на 5-8 единиц. где накосячил? Использую GUI_Texture. В кратце, при нажатии клавиши вперёд камера движется вперёд и попутно сдвигается вверх/ вниз, влево/ вправо, что и создаёт иллюзию шагов. Но неужели, это должно столько ФПС жрать? может его можно как то оптимизировать?
Синтаксис:
Используется csharp
public bool CanUpCamera = true;
public bool Can_Left_Camera = true;
public bool Can_Right_Camera = false;
public bool Peremennaya = false;
void Update () {
if (Camera.mainCamera.transform.position.y >= 0.39f){
CanUpCamera = false;
if (Can_Left_Camera && Peremennaya){
Can_Left_Camera = false;
Can_Right_Camera = true;
Peremennaya = false;
}
if (Can_Right_Camera & Peremennaya){
Can_Left_Camera = true;
Can_Right_Camera = false;
Peremennaya = false;
}
}
if (Camera.mainCamera.transform.position.y <= 0.31f){
CanUpCamera = true;
Peremennaya = true;
}
}
void FixedUpdate () {
foreach (Touch touch in Input.touches){
if( GUI_Forward.HitTest(touch.position)) {
this.rigidbody.velocity = this.transform.forward * 2.7f;
if (Camera.mainCamera.transform.position.y <= 0.39f && CanUpCamera){
Camera.mainCamera.transform.Translate(0, 0.3f * Time.deltaTime, 0);
if(Can_Left_Camera) Camera.mainCamera.transform.Translate(0.17f * Time.deltaTime, 0, 0);
if(Can_Right_Camera) Camera.mainCamera.transform.Translate(-0.17f * Time.deltaTime, 0, 0);
}
if (Camera.mainCamera.transform.position.y >= 0.31f && CanUpCamera == false){
Camera.mainCamera.transform.Translate(0, -0.3f * Time.deltaTime, 0);
if (Can_Left_Camera) Camera.mainCamera.transform.Translate(-0.17f * Time.deltaTime, 0, 0);
if (Can_Right_Camera) Camera.mainCamera.transform.Translate(0.17f * Time.deltaTime, 0, 0);
}
}
if( GUI_Back.HitTest(touch.position)) {
this.rigidbody.velocity = this.transform.forward * -1.4f;
}
if( GUI_Right.HitTest(touch.position)) {
this.transform.Rotate(Vector3.up * 120 * Time.deltaTime);
}
if( GUI_Left.HitTest(touch.position)) {
this.transform.Rotate(Vector3.up * -120 * Time.deltaTime);
}
}
public bool Can_Left_Camera = true;
public bool Can_Right_Camera = false;
public bool Peremennaya = false;
void Update () {
if (Camera.mainCamera.transform.position.y >= 0.39f){
CanUpCamera = false;
if (Can_Left_Camera && Peremennaya){
Can_Left_Camera = false;
Can_Right_Camera = true;
Peremennaya = false;
}
if (Can_Right_Camera & Peremennaya){
Can_Left_Camera = true;
Can_Right_Camera = false;
Peremennaya = false;
}
}
if (Camera.mainCamera.transform.position.y <= 0.31f){
CanUpCamera = true;
Peremennaya = true;
}
}
void FixedUpdate () {
foreach (Touch touch in Input.touches){
if( GUI_Forward.HitTest(touch.position)) {
this.rigidbody.velocity = this.transform.forward * 2.7f;
if (Camera.mainCamera.transform.position.y <= 0.39f && CanUpCamera){
Camera.mainCamera.transform.Translate(0, 0.3f * Time.deltaTime, 0);
if(Can_Left_Camera) Camera.mainCamera.transform.Translate(0.17f * Time.deltaTime, 0, 0);
if(Can_Right_Camera) Camera.mainCamera.transform.Translate(-0.17f * Time.deltaTime, 0, 0);
}
if (Camera.mainCamera.transform.position.y >= 0.31f && CanUpCamera == false){
Camera.mainCamera.transform.Translate(0, -0.3f * Time.deltaTime, 0);
if (Can_Left_Camera) Camera.mainCamera.transform.Translate(-0.17f * Time.deltaTime, 0, 0);
if (Can_Right_Camera) Camera.mainCamera.transform.Translate(0.17f * Time.deltaTime, 0, 0);
}
}
if( GUI_Back.HitTest(touch.position)) {
this.rigidbody.velocity = this.transform.forward * -1.4f;
}
if( GUI_Right.HitTest(touch.position)) {
this.transform.Rotate(Vector3.up * 120 * Time.deltaTime);
}
if( GUI_Left.HitTest(touch.position)) {
this.transform.Rotate(Vector3.up * -120 * Time.deltaTime);
}
}