1、首先从资源商店下载导入一个模型,这里选择的是下面这个模型(用了很多,这个比较好用,还是免费的),下载后导入模型。
2、创建一个平面,打开刚才导入的模型的预制体,把角色拖到场景中并命名为Player,打开的文件目录如下
3、创建一个角色控制器(右键->Create->Animator Controller),命名为boy(可随意命名),打开角色控制器,打开各状态的预制体,打开目录如下
把需要的状态拖到角色控制器中合适的位置,这里以角色的走和跑为例,首先初始状态为idel,所以先把idel拖入到角色控制器中(这个顺序很重要),接着把run和walk拖进去,然后点击idel,右键选择Make transition,点击run,以下同理,创建结果如下所示
4、创建两个布尔变量来控制角色什么时候走,什么时候跑,点击左上角的Parameters,点击加号,选择bool,创建两个变量如下图所示
文章来源地址https://www.toymoban.com/news/detail-503528.html
5、点击从idel指向run的箭头,在右边设置参数如下,Has Exit Time一定要把√去掉,否则会有延时,其余参数的设置也是一样的。
6,设置完所有参数后,选择场景中的Player,把刚才的角色控制器拖到Animator中controller中,并给角色添加刚体组件
7、编写脚本CharacterController,并把它赋给角色,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
public class charactercontroller : MonoBehaviour
{
private charactercontroller _character;
private Animator _animator;
private int speed = 2;
// Start is called before the first frame update
void Start()
{
_character = GetComponent<charactercontroller>();
_animator = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
speed = 2;
_animator.SetBool("iswalk", true);
_animator.SetBool("isrun", false);
float ho = Input.GetAxis("Horizontal");
float ve = Input.GetAxis("Vertical");
Vector3 dir = new Vector3(ho, 0, ve);
if (dir != Vector3.zero)
{
//让人物面向方向
transform.rotation = Quaternion.LookRotation(dir);
//让人物朝前方移动
setstate();
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
else
{
_animator.SetBool("iswalk", false);
_animator.SetBool("isrun", false);
}
}
void setstate()
{
if (Input.GetKey(KeyCode.H))//跑
{
speed = 10;
_animator.SetBool("iswalk", false);
_animator.SetBool("isrun", true);
}
}
}
文章来源:https://www.toymoban.com/news/detail-503528.html
到了这里,关于unity如何创建一个角色(实现角色的行走、奔跑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!