Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Слежка врага за игроком в Unity 2d

Яро Князь Князьков Ученик (112), на голосовании 7 месяцев назад
Помогите написать код C# для Unity, чтобы персонаж следовал за игроком с тегом "Player".
Сейчас код такой:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

class EnemyFollow : MonoBehaviour
{
GameObject player;

const float speedMove = 30.0f;

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

void Update()
{
float direction = player.transform.position.x - transform.position.x;

if (Mathf.Abs(direction) < 20)
{
Vector3 pos = transform.position;
pos.x += Mathf.Sign(direction) * speedMove * Time.deltaTime;
transform.position = pos;
}
}
}

Он двигается только по оси X, и всё время дёргается.
Голосование за лучший ответ
погода тест Знаток (417) 8 месяцев назад
Ваш код уже близок к решению, но есть несколько вещей, которые можно улучшить. Во-первых, вы используете только ось X для движения, что может привести к дергающемуся движению. Во-вторых, вы используете Mathf.Abs(direction) < 20, что может быть не очень точным, так как это может привести к тому, что персонаж будет двигаться слишком быстро или слишком медленно.

Вот исправленный код:
 using System.Collections;  

using System.Collections.Generic;

using UnityEngine;



class EnemyFollow : MonoBehaviour

{

GameObject player;



const float speedMove = 30.0f;



void Start()

{

player = GameObject.FindWithTag("Player");

}



void Update()

{

float direction = player.transform.position - transform.position;



direction.Normalize();



Vector3 pos = transform.position;

pos += direction \* speedMove \* Time.deltaTime;

transform.position = pos;

}

}
Яро Князь КнязьковУченик (112) 8 месяцев назад
Извините, я когда вставил код, у меня нет никаких ошибок, но не включается компилятор... Подскажите в чём проблема, пожалуйста...
qwerti0909 Ученик (219) 8 месяцев назад
пойди лучше наклейки от бананов отклеивай, а не фигнёй занимайся
Похожие вопросы