Результаты поиска
|
|
mkarov | Дата: Понедельник, 28 Января 2019, 09:35 | Сообщение # 1 | Тема: Помогите наладить слежение камеры за персонажем |
был не раз
Сейчас нет на сайте
| Хм.... Попробовал ваш скрипт, но всё равно персонаж дёргается, значит проблема не в коде. А за скрипт спасибо!
Сообщение отредактировал mkarov - Понедельник, 28 Января 2019, 09:36 |
|
| |
mkarov | Дата: Воскресенье, 27 Января 2019, 19:42 | Сообщение # 2 | Тема: Помогите наладить слежение камеры за персонажем |
был не раз
Сейчас нет на сайте
| Делаю 2D платформер, не могу сделать чтобы камера плавно следила за персонажем, притом только по горизонтали. Кто знает помогите пожалуйста, заранее спасибо!
пробовал такой скрипт, но когда ходит сильно дребезжит.
Код using UnityEngine; using System.Collections;
public class CameraFollow2D : MonoBehaviour {
public float damping = 1.5f; public Vector2 offset = new Vector2(2f, 1f); public bool faceLeft; private Transform player; private int lastX;
void Start () { offset = new Vector2(Mathf.Abs(offset.x), offset.y); FindPlayer(faceLeft); }
public void FindPlayer(bool playerFaceLeft) { player = GameObject.FindGameObjectWithTag("Player").transform; lastX = Mathf.RoundToInt(player.position.x); if(playerFaceLeft) { transform.position = new Vector3(player.position.x - offset.x, player.position.y + offset.y, transform.position.z); } else { transform.position = new Vector3(player.position.x + offset.x, player.position.y + offset.y, transform.position.z); } }
void Update () { if(player) { int currentX = Mathf.RoundToInt(player.position.x); if(currentX > lastX) faceLeft = false; else if(currentX < lastX) faceLeft = true; lastX = Mathf.RoundToInt(player.position.x);
Vector3 target; if(faceLeft) { target = new Vector3(player.position.x - offset.x, player.position.y + offset.y, transform.position.z); } else { target = new Vector3(player.position.x + offset.x, player.position.y + offset.y, transform.position.z); } Vector3 currentPosition = Vector3.Lerp(transform.position, target, damping * Time.deltaTime); transform.position = currentPosition; } } }
|
|
| |
mkarov | Дата: Суббота, 26 Января 2019, 17:50 | Сообщение # 3 | Тема: Помогите наладить прыжок. |
был не раз
Сейчас нет на сайте
| Спасибо большое! Всё заработало.
|
|
| |
mkarov | Дата: Суббота, 26 Января 2019, 17:21 | Сообщение # 4 | Тема: Помогите наладить прыжок. |
был не раз
Сейчас нет на сайте
| Делаю 2D платформер, и никак не получается сделать чтобы персонаж прыгал только когда касается земли, а не летал. Если кто знает подскажите как решить. Заранее спасибо!
Код персонажа:
Код using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Player : MonoBehaviour {
public int jump = 200; public int speed = 20; private Rigidbody2D rb; bool isGrounded;
void Start () { rb = GetComponent <Rigidbody2D> (); } void Update () {
//Жизни и смерти //Перемещение float moveX = Input.GetAxis("Horizontal"); rb.velocity = new Vector2(moveX * speed, rb.velocity.y);
if (Input.GetKeyDown(KeyCode.Space) && isGrounded == true){ rb.AddForce(Vector2.up * jump, ForceMode2D.Impulse); } }
void OnCollisionEnter2D (Collision2D collision){ if(collision.gameObject.tag == "Groung") isGrounded = true; }
void OnCollisionExit2D (Collision2D collision){ if(collision.gameObject.tag == "Ground") isGrounded = false; } }
|
|
| |
mkarov | Дата: Воскресенье, 06 Января 2019, 21:13 | Сообщение # 5 | Тема: Проблемы с паузой. |
был не раз
Сейчас нет на сайте
| Спасибо большое! Всё заработало.
|
|
| |
mkarov | Дата: Воскресенье, 06 Января 2019, 18:13 | Сообщение # 6 | Тема: Проблемы с паузой. |
был не раз
Сейчас нет на сайте
| Теперь когда входишь на уровень всё в порядке но пауза срабатывает только со второго раза.
|
|
| |
mkarov | Дата: Воскресенье, 06 Января 2019, 10:16 | Сообщение # 7 | Тема: Проблемы с паузой. |
был не раз
Сейчас нет на сайте
| Всё работает хорошо, но со второго раза, когда я вхожу из меню на уровень, он почему-то уже на паузе. И только когда я 2 раза нажму на Esc, всё начинает работать. Помогите пожалуйста решить проблему, заранее спасибо.
Скрипт прикрепил к игроку. using UnityEngine; using System.Collections;
public class PauseEsc : MonoBehaviour { public bool paused; public GameObject canvas; // Use this for initialization void Start () { paused = false; } // Update is called once per frame void Update () { if (Input.GetKeyDown (KeyCode.Escape)) { if (!paused) { Time.timeScale = 0; paused = true; canvas.SetActive (true); } else { Time.timeScale = 1; paused = false; canvas.SetActive (false); } } } }
|
|
| |
mkarov | Дата: Среда, 03 Октября 2018, 16:51 | Сообщение # 8 | Тема: Нужен тестировщик! |
был не раз
Сейчас нет на сайте
| Привет! А что за игра?
|
|
| |
mkarov | Дата: Вторник, 02 Октября 2018, 17:55 | Сообщение # 9 | Тема: Нужна идея сюжета для 2D RPG |
был не раз
Сейчас нет на сайте
| Хочу сделать 2D РПГ с видом сверху. Нужен простенький но интересный сюжет. Посоветуйте пожалуйста что - нибудь.
|
|
| |
mkarov | Дата: Пятница, 21 Сентября 2018, 17:57 | Сообщение # 10 | Тема: TDS не могу сделать нормально стреляли персонаж и враги |
был не раз
Сейчас нет на сайте
| DonakiDijunk, спасибо!
|
|
| |
mkarov | Дата: Пятница, 21 Сентября 2018, 16:10 | Сообщение # 11 | Тема: TDS не могу сделать нормально стреляли персонаж и враги |
был не раз
Сейчас нет на сайте
| Делаю TDS игру. Пытаюсь сделать так что бы персонаж стрелял в сторону мышки, а враги в меня когда я вхожу в их радиус видимости. У персонажа в событии "Global left pressed", а у врага в "Alarm 0" написал такой код: instance_create_depth(x,y,-10,bullet) У пули (bullet) в "Create" написал такой код: move_towards_point(player.x,player.y,60); move_towards_point(mouse_x,mouse_y,60); Но когда запускаю игру, то враги, как и должны, стреляют в меня. А я почему-то стреляю влево. Если в "Create" пули поменять местами фрагменты кода, то я стреляю в направлении курсора, но враги тоже стреляют в направлении курсора. Прошу пожалуйста помочь решить эту проблему, заранее спасибо.
|
|
| |