Вы создадите новый скрипт monobehaviour и добавите его в свой примитив. Затем вы будете использовать метод «Обновить» monobehaviour (или использовать сопрограмму) для объекта изменения с течением времени.
Monobehaviour должен выглядеть следующим образом:
public class ShrinkBehaviour : MonoBehaviour
{
bool isNeedToShrink;
Config currentConfig;
float startTime;
float totalDistance;
public void StartShrink(Config config)
{
startTime = Time.time;
currentConfig = config;
totalDistance = Vector3.Distance(currentConfig.startSize, currentConfig.destinationSize);
isNeedToShrink = true;
transform.localScale = config.startSize;
}
private void Update()
{
if (isNeedToShrink)
{
var nextSize = GetNextSize(currentConfig);
if (Vector3.Distance(nextSize, currentConfig.destinationSize) <= 0.05f)
{
isNeedToShrink = false;
return;
}
transform.localScale = nextSize;
}
}
Vector3 GetNextSize(Config config)
{
float timeCovered = (Time.time - startTime) / config.duration;
var result = Vector3.Lerp(config.startSize, config.destinationSize, timeCovered);
return result;
}
public struct Config
{
public float duration;
public Vector3 startSize;
public Vector3 destinationSize;
}
}
Для этого вы должен сделать следующее:
public Cylinder()
{
GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
var shrink = cylinder.AddComponent<ShrinkBehaviour>();
shrink.StartShrink(new ShrinkBehaviour.Config() { startSize = Vector3.one * 10, destinationSize = Vector3.one * 1, duration = 20f });
cylinder.transform.position = new Vector3(3, 0, 0);
cylinder.GetComponent<MeshRenderer>().material.color = Random.ColorHSV();
Destroy(cylinder, 30.0f);
}
Вы должны помнить, что monobehaviour-script должен быть в отдельном файле и должен иметь имя, подобное имени monobehaviour-class. Например, ShrinkBehaviour.cs;
$st = $data->prepare("SELECT * FROM exampleWHERE example LIKE :search LIMIT 10");
Существует три способа извлечения нескольких строк, возвращаемых оператором PDO.
Простейшим является просто выполнить итерацию по самому PDOStatement:
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// iterating over a statement
foreach($stmt as $row) {
echo $row['name'];
}
другой - это выборка строк с использованием метода fetch () внутри знакомого оператора while:
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// using while
while($row = $stmt->fetch()) {
echo $row['name'];
}
, но для современного веб-приложения нам нужно, чтобы наши итерации datbase были отделены от вывода, и поэтому наиболее удобным методом было бы получить все строки сразу с помощью метода fetchAll ():
$stmt = $pdo->prepare("SELECT * FROM auction WHERE name LIKE ?")
$stmt->execute(array("%$query%"));
// fetching rows into array
$data = $stmt->fetchAll();
а затем вывести их в шаблон:
<ul>
<?php foreach($data as $row): ?>
<li><?=$row['name']?></li>
<?php endforeach ?>
</ul>
Обратите внимание, что PDO поддерживает множество режимов сложной выборки, позволяя fetchAll () возвращать данные во многих разных форматах .