Не могу правильно повернуть врага по отношению к игроку

Форум для всего, что связано с ИИ.

Не могу правильно повернуть врага по отношению к игроку

Сообщение Rodion56730 18 дек 2018, 17:35

Помогите не могу правильно повернуть спрайт. Вот что происходит:

Join 4Shared Now!

Вот код:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour {

                //дистанция от которой он начинает видеть игрока
                public float seeDistance;
                //дистанция до атаки
                public float attackDistance;
                //скорость енеми
                public float speed = 6;
                //игрок
                private Transform target;

                void Start()
                {
                        target = GameObject.FindWithTag("Player").transform;
                }

                void Update()
                {
                if (Vector3.Distance (transform.position, target.transform.position) < seeDistance) {
               
                        if (Vector3.Distance (transform.position, target.transform.position) > attackDistance)
                        {
                                transform.right = target.transform.position - transform.position;
                                transform.Translate (new Vector3 (speed * Time.deltaTime, 0, 0));

                                }
                        }
                }
        }
       
 
Rodion56730
UNец
 
Сообщения: 11
Зарегистрирован: 18 дек 2018, 06:19

Re: Не могу правильно повернуть врага по отношению к игроку

Сообщение 1max1 31 дек 2018, 13:03

Замени:
Синтаксис:
Используется csharp
transform.right = target.transform.position - transform.position;
transform.Translate (new Vector3 (speed * Time.deltaTime, 0, 0));

На:
Синтаксис:
Используется csharp
var dir = target.transform.position - transform.position;
transform.position += dir.normalized * speed * Time.deltaTime;

Спрайт можно поворачивать так https://docs.unity3d.com/ScriptReferenc ... flipX.html в зависимости от того, с какой стороны враг.
Проверяется так:
Синтаксис:
Используется csharp
if (target.transform.position.x < transform.position.x) ...
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51


Вернуться в Искуственный Интеллект

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4