HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 27.10.2018, 14:00
8999aka
Новичок
Регистрация: 26.10.2018
Сообщений: 2
С нами: 3973226

Репутация: 0
По умолчанию

всем привет написал такой код при клике ходить через NavMeshAgent

я только изучаю так что строго не судить )

[QUOTE="Спойлер"]
[COLOR="#363940"]
using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.AI;

public class Move_anim : MonoBehaviour {

NavMeshAgent nav;

GameObject Enemy;

Animator animator;

[SerializeField]float dist;

[SerializeField]float time;

float radius=10f;

float normalizedTime;

float length;

int dts;

void Start () {

Enemy = null;

animator=GetComponent();

nav=GetComponent();

nav.updateRotation = false;

normalizedTime = animator.GetCurrentAnimatorStateInfo (0).normalizedTime%1;

length = animator.GetCurrentAnimatorStateInfo(0).length;

if (nav == null)

return;

}

void Update () {

dts =(int)dist;

if (Enemy != null) {

range.text = Enemy.name + " " + dts.ToString ();

}

if (animator.GetCurrentAnimatorStateInfo(0).IsName("a tack")&&normalizedTime 0.1f)

animator.SetFloat("V",nav.velocity.magnitude);

else

animator.SetFloat("V",0);

}

}

void Move_click()

{

if (Input.GetMouseButton (0))

{

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

RaycastHit hit;

if(Physics.Raycast(ray,out hit,100))

{

if(hit.transform.tag=="Plan"){

nav.destination=hit.point;

klick=false;

}

if(hit.transform.tag=="Enemy"){

Enemy=hit.collider.gameObject;

nav.SetDestination(Enemy.transform.position);

klick=true;

}

}

if(nav.velocity.magnitude !=0){

Vector3 dir = hit.point - transform.position;

dir.y = 0;

transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(dir),15f*Time.deltaTime);

}

}

}

void Move_attack()

{

if (Enemy == null)

return;

dist = Vector3.Distance (Enemy.transform.position, transform.position);

if (dist > radius) {

}

if (dist 2f) {

animator.SetBool("enemyClicked",false);

}

if (dist
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.