using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SitDown : MonoBehaviour
{
public GameObject cameraGood;
public float speed = 5;
bool negr = false;
int a = 1;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
void FixedUpdate()
{
if (Input.GetKeyDown( KeyCode.LeftControl))
{
if (negr == false)
{
print("ctrlDown");
speed = 10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = true;
FirstPersonMovement.speed = 2; // статик для кода, который
FirstPersonMovement.runSpeed = 2; // изменяет скорость передвижения
}
else
{
print("ctrlUp");
FirstPersonMovement.speed = 5;
FirstPersonMovement.runSpeed = 9;
speed = -10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = false;
}
}
}
}
(Длина кадра у этих двух различается) FixedUpdate выполняется после отрисовки каждого фиксированного кадра. Отличие от update заключается в том, что FixedUpdate выполняется в визуализированном кадре. Если эффективность визуализации низкая, количество вызовов FixedUpdate уменьшится. FixedUpdate больше подходит для расчета физического движка, потому что он связан с рендерингом каждого кадра. Обновление больше подходит для контроля.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SitDown : MonoBehaviour
{
public GameObject cameraGood;
public float speed = 5;
bool negr = false;
void Update()
{
SitDownPls();
}
void SitDownPls()
{
if (Input.GetKeyDown( KeyCode.LeftControl))
{
if (negr == false)
{
print("ctrlDown");
speed = 10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = true;
FirstPersonMovement.speed = 2;
FirstPersonMovement.runSpeed = 2;
}
else
{
print("ctrlUp");
FirstPersonMovement.speed = 5;
FirstPersonMovement.runSpeed = 9;
speed = -10;
cameraGood.transform.Translate(Vector3.down * Time.deltaTime * speed );
negr = false;
}
}
}
}