Результаты поиска
| |
RobitI | Дата: Четверг, 20 Апреля 2023, 00:26 | Сообщение # 1 | Тема: Как сделать так чтобы частицы обтекали объект при сталкивани |
был не раз
Сейчас нет на сайте
| В своей 2D игре я сделал огонь с помощью parctile system и хочу сделать так, чтобы этот огонь обтекал некоторые объекты при соприкосновении, например камень, как мне это сделать?
|
|
| |
RobitI | Дата: Суббота, 01 Апреля 2023, 15:27 | Сообщение # 2 | Тема: Как двигать предмет при определённых условиях |
был не раз
Сейчас нет на сайте
| Цитата falcoware ( ) RobitI, OnCollisionEnter смотрели функцию?
Да, но всё равно объект поддаётся толчку игнорируя при этом условия
Сообщение отредактировал RobitI - Суббота, 01 Апреля 2023, 15:28 |
|
| |
RobitI | Дата: Суббота, 01 Апреля 2023, 00:50 | Сообщение # 3 | Тема: Как двигать предмет при определённых условиях |
был не раз
Сейчас нет на сайте
| Я хочу сделать так, чтобы мой персонаж мог двигать объекты при определённых условиях, иначе объект, который надо двигать не будет сдвинут с места, но у меня не получается правильно написать код.
Код public float pushForce = 10f; // сила толчка private bool canPush = false; // можно ли толкать объект
private void OnCollisionStay(Collision collision) { if (collision.gameObject.CompareTag("Player") && PlayerTransform.FormEarth.activeInHierarchy) { canPush = true; } }
private void OnCollisionExit(Collision collision) { if (collision.gameObject.CompareTag("Player") && PlayerTransform.FormEarth.activeInHierarchy) { canPush = false; } }
private void FixedUpdate() { if (canPush) { GetComponent<Rigidbody>().AddForce(transform.forward * pushForce, ForceMode.Impulse); } }
Сообщение отредактировал RobitI - Суббота, 01 Апреля 2023, 00:51 |
|
| |
RobitI | Дата: Вторник, 21 Марта 2023, 23:55 | Сообщение # 4 | Тема: Как поменять положение слоёв объекта в самом движке |
был не раз
Сейчас нет на сайте
| Мой персонаж в игре был сделан с помощью фотошопа, так что положение слоёв частей его тела были за ранее определены и без данной программы их не положение не изменить, и из за этого у меня не получается сделать анимацию корректно, например флосс. Есть ли какой ни будь способ поменять положение слоев объекта прямо в unity без фотошопа? Добавлено (22 Марта 2023, 01:30) --------------------------------------------- Я нашел где это делается, в параметре sprite renderer
|
|
| |
RobitI | Дата: Пятница, 03 Марта 2023, 00:13 | Сообщение # 5 | Тема: Как скрывать и показывать элементы при условии |
был не раз
Сейчас нет на сайте
| falcoware, спасибо, переписал код и всё работает.
|
|
| |
RobitI | Дата: Четверг, 02 Марта 2023, 00:09 | Сообщение # 6 | Тема: Как скрывать и показывать элементы при условии |
был не раз
Сейчас нет на сайте
| У меня в игре есть 5 разных объектов и игрок, при прикосновении к 1 из объектов, получает значение переменной данного объекта. Проблема в том, что у меня не получается сделать событие, которое должно скрывать определённый объект в зависимости от значения переменной игрока связанной с переменной объекта, а остальные объекты - показывать. Как мне это исправить? Код для получения переменной из объекта:
Код public class TransformMarks : MonoBehaviour { public GameObject Form; public string Element; private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "Player") { PlayerTransform.CurrentElement = Element; Debug.Log(PlayerTransform.CurrentElement); } } }
Код события скрытия и показа объектов:
Код public class PlayerTransform : MonoBehaviour { public static string CurrentElement = "Earth"; public static GameObject TransfMark;
void Update() { if(CurrentElement == "Fire") { TransfMark = GameObject.Find("FireTransform"); Destroy(TransfMark); } else { TransfMark = GameObject.Find("FireTransform"); TransfMark.gameObject.SetActive(true); } } }
|
|
| |
RobitI | Дата: Среда, 22 Февраля 2023, 23:37 | Сообщение # 7 | Тема: Как изменить параметры элемента, не изменяя дочерние? |
был не раз
Сейчас нет на сайте
| Я хочу сделать для своего персонажа анимацию дыхания через изменения размеров костей, но проблема в том, что при изменении параметров родительского элемента, изменяются параметры дочерних элементов, так что, пожалуйста, скажите как изменить параметры только родительского элемента.
|
|
| |
RobitI | Дата: Среда, 15 Февраля 2023, 03:27 | Сообщение # 8 | Тема: Как добавить картинку в 2.5D платформер? |
был не раз
Сейчас нет на сайте
| Я хочу добавить картинки в свой платформер, которые при прикосновении с игроком вызывали событие, но проблема в том, что я не вставить эти картинки в игру. Картинки, которые я хочу добавить это простые картинки с обрезанным фоном.
|
|
| |
RobitI | Дата: Суббота, 04 Февраля 2023, 00:54 | Сообщение # 9 | Тема: Как настроить порядок появления врагов в Tower Defense? |
был не раз
Сейчас нет на сайте
| Я хочу сделать так, чтобы в волне враги выходили в определённом порядке, например сначала появилось гоблины, потом орки, потом снова гоблины, а в конец волны появляется огр. На всех сайтах и видео, которые я посмотрел, было показано спавн 1 типа врага с определённым интервалом за каждую волну. Пожалуйста, скажите, как это реализовать
|
|
| |
RobitI | Дата: Вторник, 10 Января 2023, 13:44 | Сообщение # 10 | Тема: Как сделать конец пути с ассетом "Bezier Path Creator" |
был не раз
Сейчас нет на сайте
| Цитата TLT ( ) Поставь в конце пути объект (домик или просто прозрачный), при столкновении врага с которым происходит отъём жизней, де активация/удаление врага Из-за безье не работает столкновение, объект враг просто проходит сквозь "конец пути"
|
|
| |
RobitI | Дата: Суббота, 07 Января 2023, 12:12 | Сообщение # 11 | Тема: Как сделать конец пути с ассетом "Bezier Path Creator" |
был не раз
Сейчас нет на сайте
| Цитата TLT ( ) Подробнее, что за конец? =) Чтобы в игре после прохождения круга был финиш и гонка прерывалась, либо как в этом плагине сделать трассу от точки до точки (спринт)? Я делаю tower defense, так что, мне надо чтобы враг после того, как он дойдет до конца безье, не возвращался в начало, а отнимал жизни
|
|
| |
RobitI | Дата: Пятница, 06 Января 2023, 12:27 | Сообщение # 12 | Тема: Как сделать конец пути с ассетом "Bezier Path Creator" |
был не раз
Сейчас нет на сайте
| Нашел ассет который создает путь/дорогу, но не знаю как программно сделать конец пути.
https://assetstore.unity.com/packages/tools/utilities/b-zier-path-creator-136082#description
|
|
| |
RobitI | Дата: Четверг, 05 Января 2023, 13:47 | Сообщение # 13 | Тема: Как создать безье путь для Tower Defense на Unity? |
был не раз
Сейчас нет на сайте
| Цитата Core ( ) Как я вижу, в этом скрипте идет только отрисовка gizmos. Логически безье тут не создается. Я это и имел в виду, просто неправильно выразился.
|
|
| |
RobitI | Дата: Среда, 04 Января 2023, 17:04 | Сообщение # 14 | Тема: Как создать безье путь для Tower Defense на Unity? |
был не раз
Сейчас нет на сайте
| Я хочу сделать плавное передвижение противников на округленных путях, но у меня не получается объединить скрипт с передвижением объекта по безье со скриптом по составляющей Tower Defense
Скрипт для создания безье:
[SerializeField] private Transform[] controlPoints;
private Vector3 gizmosPosition;
private void OnDrawGizmos() { for (float t = 0; t <= 1; t += 0.05f) { gizmosPosition = Mathf.Pow(1 - t, 3) * controlPoints[0].position + 3 * Mathf.Pow(1 - t, 2) * t * controlPoints[1].position + 3 * (1 - t) * Mathf.Pow(t, 2) * controlPoints[2].position + Mathf.Pow(t, 3) * controlPoints[3].position;
Gizmos.DrawSphere(gizmosPosition, 0.25f); }
Gizmos.DrawLine(new Vector3(controlPoints[0].position.x, controlPoints[0].position.y, controlPoints[0].position.z), new Vector3(controlPoints[1].position.x, controlPoints[1].position.y, controlPoints[1].position.z)); Gizmos.DrawLine(new Vector3(controlPoints[2].position.x, controlPoints[2].position.y, controlPoints[2].position.z), new Vector3(controlPoints[3].position.x, controlPoints[3].position.y, controlPoints[3].position.z));
}
Скрипт для передвижения объекта по безье:
[SerializeField] private Transform[] routes;
private int routeToGo;
private float tParam;
private Vector3 objectPosition;
private float speedModifier;
private bool coroutineAllowed;
// Start is called before the first frame update void Start() { routeToGo = 0; tParam = 0f; speedModifier = 0.5f; coroutineAllowed = true; }
// Update is called once per frame void Update() { if (coroutineAllowed) { StartCoroutine(GoByTheRoute(routeToGo)); } }
private IEnumerator GoByTheRoute(int routeNum) { coroutineAllowed = false;
Vector3 p0 = routes[routeNum].GetChild(0).position; Vector3 p1 = routes[routeNum].GetChild(1).position; Vector3 p2 = routes[routeNum].GetChild(2).position; Vector3 p3 = routes[routeNum].GetChild(3).position;
while (tParam < 1) { tParam += Time.deltaTime * speedModifier;
objectPosition = Mathf.Pow(1 - tParam, 3) * p0 + 3 * Mathf.Pow(1 - tParam, 2) * tParam * p1 + 3 * (1 - tParam) * Mathf.Pow(tParam, 2) * p2 + Mathf.Pow(tParam, 3) * p3;
transform.position = objectPosition; yield return new WaitForEndOfFrame(); }
tParam = 0; routeToGo += 1;
if (routeToGo > routes.Length - 1) { routeToGo = 0; }
coroutineAllowed = true;
} Пожалуйста, скажите, как переделать эти скрипты для нужного результата
|
|
| |
|