unity wsad 鼠标_Unity3d基础(1)角色自动寻路、方向键移动、第三人称相机

本文介绍了如何在Unity3D中实现角色通过鼠标点击和WSAD键进行移动。内容包括使用NavMeshAgent组件进行自动寻路,解决模型导入时的缩放问题,以及设置角色动画和相机跟随。此外,还提供了相机功能的实现,包括跟随角色移动、鼠标右键拖动、滚轮缩放视图,并分享了角色方向键移动的优化代码。
摘要由CSDN通过智能技术生成

今天做了一个人物点击鼠标移动的Demo,还有方向键的移动。

人物点击鼠标移动自然要用到NavMeshAgent寻路组件了:

首先我先说说把人物素材导入进去遇到的问题:

1.导入进去的时候人物模型是白的,没有皮肤,即使把材质球贴了也一样,这样我才发现是模型的缩放比例太小了,才0.01,正常是0.5,0.01导致了两个问题,第一,模型的材质贴图显示不出来,二,模型拖到场景视图上根本看不见。所以要记得改改缩放比例Scale Factor这个

2.一开始我倒进来的动画类型是Generic,然后我在角色中添加动画组件,在代码中写播放动画,结果代码提示动画不存在。我就把模型和所有的动画都改成Legacy,结果是所有的动画都自动倒进Animation组件中去了,而且在代码中也能识别了,真不错.

上网查了一下Unity 动画类型,才发现Legacy是老的动画系统,下面有一篇关于动画系统的分析写得不错,有空我再学习学习

http://www.360doc.com/content/13/1216/12/12282510_337556448.shtml

接着说说,我在做人物自动寻路的问题:

正确步骤是这样子的,对地板plane属性面板的static勾上,然后Layer 选择default(我这里选择的是第八层,随便取个名字abc 因为我在后面的寻路代码中加入了射线的参数mask==1<<8,这里的8是后面的第八层,后面我再解释),当然你选择default括号的不用再看了,只是如过要使用我的代码可能要注意一下了呵呵。。。。继续,然后直接bake一下,会生成蓝色的地板,提示你要保存场景,保存完了就地板的就制作好了。然后再给主角添加一个寻路组件NavMeshAgent组件,整个寻路步骤就此完成

我遇到的问题是属性面板旁边的那个Navigation选项卡经常会不见了,只要在菜单栏windows上面选择Navigation就出现了。

人物自动寻路代码如下:

playerControl.cs:

using UnityEngine;

using System.Collections;

public class PlayerControl : MonoBehaviour

{

//这个代表要寻路的主角

NavMeshAgent m_player;

//这个是主角的动作动画

Animation m_animation;

//主角在跑时候的速度

public float speed;

//照相机要跟上主角移动

Transform m_Camera;

public float m_MoveFactor = 4.0f;

public float m_RotateFactor = 10.0f;

Vector3 nowPosition;

void Start()

{

//通过这个函数可以找到套在主角身上的所有组件,这次找的是寻路组件哈

m_player = GetComponent();

//获取主角身上的动画数组

m_animation = animation;

//获取照相机的位置-----transform是位置信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值