Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

WaitForSeconds Constructor

Объявление

public WaitForSeconds(float seconds);

Параметры

seconds Задержка выполнения на количество времени в секундах.

Описание

Приостанавливает выполнение сопрограммы на заданное количество секунд, используя масштабированное время.

Создайте инструкцию yield. Подождите seconds, умноженные на Time.scaledTime. Если для seconds задано значение 2.0f, а Time.scaledTime задано значение 0,5f, время ожидания составляет 4,0f (2,0f, разделенное на 0,5f секунды). Пример WaitForSeconds имеет значение 1.0f. Вторая кнопка изменяет Time.scaledTime. на 4.0f. Кубики теперь двигаются быстрее.

using System.Collections; using System.Collections.Generic; using UnityEngine; // Пример WaitForSeconds. // // Создадим три куба. Нажмите кнопку «Переместить кубики нормально», чтобы оживить их. // Нажмите кнопку "Быстро переместить кубики", чтобы быстрее их анимировать. // Пусть WaitForSeconds ожидает разное количество времени. Кубики // двигаться вверх или вниз по одному. public class ScriptExample : MonoBehaviour { private GameObject[] gameObjects; private int numberOfGameObjects = 3; private bool exampleInUse = false; private int width, height; private float xPos, yPos; private float xSize, ySize; private int fontSize; void Awake() { gameObjects = new GameObject[numberOfGameObjects]; for (int i = 0; i < numberOfGameObjects; i++) { // Create a cube, place in the world, and set the name. gameObjects[i] = GameObject.CreatePrimitive(PrimitiveType.Cube); gameObjects[i].transform.position = new Vector3(-1.5f + i * 1.5f, 0.5f, 0.0f); gameObjects[i].name = i.ToString(); } // The size and position of the buttons. width = Screen.width; height = Screen.height; xPos = width - width / 2.5f; yPos = height - height / 5; xSize = 250 * width / 800; ySize = 40 * height / 600; fontSize = 24 * width / 800; // Place the camera in a good location and looking towards the cubes. Camera.main.transform.position = new Vector3(2.6f, 2.0f, 2.5f); Camera.main.transform.localEulerAngles = new Vector3(25.0f, -135.0f, 0.0f); } // Move selected cube up or down. void ChangeSize(int gameObject, float x) { if (gameObjects[gameObject].transform.position.y > 0.95f) { gameObjects[gameObject].transform.position = new Vector3(x, 0.5f, 0.0f); } else { gameObjects[gameObject].transform.position = new Vector3(x, 1.0f, 0.0f); } } IEnumerator Example() { // Start control of the three cubes. exampleInUse = true; // Move the first cube up or down. yield return new WaitForSeconds(0.5f); ChangeSize(0, -1.5f); // Move the second cube up or down. yield return new WaitForSeconds(1.5f); ChangeSize(1, 0.0f); // Move the third cube up or down. yield return new WaitForSeconds(0.75f); ChangeSize(2, 1.5f); // Pause for a second. yield return new WaitForSeconds(1.0f); exampleInUse = false; } void OnGUI() { GUI.enabled = !exampleInUse; GUI.skin.button.fontSize = 24 * width / 800; if (GUI.Button(new Rect(xPos, yPos, xSize, ySize), "Move cubes normally")) { Time.timeScale = 1.0f; StartCoroutine(Example()); } // Set the speed of the cubes to be more fast than normal. if (GUI.Button(new Rect(xPos, yPos + ySize * 1.1f, xSize, ySize), "Move cubes quickly")) { Time.timeScale = 4.0f; StartCoroutine(Example()); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3