在地图中移动,已完成古迹探险课程

2019-01-21

image.png

C#代码
镜头跟随代码

using System.Collections.Generic;
using UnityEngine;


public class follow_hero : MonoBehaviour
{
    public Transform hero;

    private Vector3 offset;//定义三维坐标
    // Start is called before the first frame update
    void Start()
    {
        offset = transform.position - hero.position;//计算偏移量
    }

    // Update is called once per frame
    void Update()
    {
        transform.position = offset + hero.position;// 设置位置会实时更新
    }
}

点击获取位置并移动英雄代码
用到windows窗口里的animator和AI里的navigation组件
使用自动寻路系统

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class hero : MonoBehaviour
{
    public NavMeshAgent agent;
    public Animator anim;// 可以获取Animatior
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//定义一个射线,射线位置为鼠标位置
            RaycastHit hit;//用来保存碰撞信息
            if (Physics.Raycast(ray, out hit))//进行碰撞检测
            {
                //print(hit.point);
                agent.SetDestination(hit.point);//设置目标位置
            }

        }

        anim.SetFloat("speed",agent.velocity.magnitude);//获取速度的值
        
    }
}

你可能感兴趣的:(在地图中移动,已完成古迹探险课程)