博客列表 >物体按指定路径行走

物体按指定路径行走

龍__遇见彩虹的博客
龍__遇见彩虹的博客原创
2017年12月03日 21:32:471651浏览

TIM截图20171203213003.png

1创建空物体,在空物体里创建多个路径目标点。自定义脚本:RoadPoints

using UnityEngine;
using System.Collections;
public class RoadPoints : MonoBehaviour {
    public static Transform[] pointPosition;//创建路径目标点
    //获得每一个路径点
    private void Awake()
    {
        pointPosition = new Transform[transform.childCount];
        for (int i = 0; i < pointPosition.Length; i++)
        {
            pointPosition[i] = transform.GetChild(i);
        }
    }
}


2.给移动物体Player自定义脚本。

using UnityEngine;
using System.Collections;
/*
 *获得当前物件下的所有子物体,将它们作为路径点
 *游戏物体按此路径移动
 */ 
public class PlayerCC : MonoBehaviour {
    public float speed = 10;
    private Transform[] positions;
    private int index = 0;
    private void Start()
    {
        positions = RoadPoints.pointPosition;
    }
    void Update()
    {
        Move();
    }
    //创建移动的方法
    void Move()
    {
        if (index > positions.Length - 1) return;//规定数组不超出范围
        //将物体位置与下一个目标点位置单位化,从而移动到目标点
        transform.Translate( (positions[index].position - transform.position).normalized * Time.deltaTime * speed);
        //如果物体与目标点位置少于0.2,说明到达当前目标点
        //那么物体向
        if (Vector3.Distance(positions[index].position, transform.position) <= 0.1f)
        {
            index++;
        }
    }
}


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议