一,鼠标引导模型运动:
在模型的Inspector面板上,点击Add Component,添加导航组件Nav Mesh Agent组件:
设置Radius和Height两个参数,画出物体大概范围:
Project面板上创建脚本MouseClick,并拖到斑马模型的Inspector面板上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class MouseClick : MonoBehaviour {
public NavMeshAgent agent;//得到模型的NavMeshAgent
public Animator anim;
// 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))//如果发生碰撞
{
agent.SetDestination(hit.point);//将鼠标点击位置,设置为agent的位置,也就是模型的位置
}
}
anim.SetFloat("speed", agent.velocity.magnitude);
}
}
将Nav Mesh Agent拖拽到Mouse Click脚本的Agent处:
Nav Mesh Agent的Angular Speed设置大一点,可以让物体移动更加灵活:
二,控制视野——摄像机跟随:
调整模型和摄像机的位置,在游戏Game画面上,显示合适的视野。
创建脚本,并托给摄像机:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowTarget : MonoBehaviour {
public Transform hero; //跟随目标
private Vector3 offset; //位置偏移量
// Use this for initialization
void Start () {
offset = transform.position - hero.position;//设定的偏移量=当前位置-模型位置
}
// Update is called once per frame
void Update () {
transform.position = offset + hero.position;//设定的偏移量+模型位置
}
}
将模型,拖拽到脚本这里:
三,让模型动起来:
在Project面板上,创建动画状态机Animator Controller,命名为BMController.
选中斑马模型,在Inspector面板上,将刚刚创建的BMController,拖过去:
选中斑马模型,从window菜单栏找到Animator,并将需要的动画拖动到上面。
右击动画选中Make Transition,来建立联系:
我们通过速度来进行切换,从静止到慢走到快跑
创建speed:
选中两个动画中的一条线:
在Inspector面板上:
1:
表示速度大于0时,切换到Trot,慢走动画。
2:
3:
4:
选中斑马模型,在Inspector面板上,将Animator拖到 如图所示位置:
运行试试!