Страница 1 из 1

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

СообщениеДобавлено: 18 дек 2018, 17:35
Rodion56730
Помогите не могу правильно повернуть спрайт. Вот что происходит:

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));

                                }
                        }
                }
        }
       
 

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

СообщениеДобавлено: 31 дек 2018, 13:03
1max1
Замени:
Синтаксис:
Используется 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) ...