当前位置: 首页 > news >正文

做批发的有哪些网站江西优化中心

做批发的有哪些网站,江西优化中心,餐饮会员管理系统,西部数码网站管理助手serv-u默认密码前言:上一篇的时候,我们已经导入了官方fps的素材,并且对三维模型有了一定了解。接下来我们要构建一个简单的场景让玩家能够有地方移动,然后写一个简单的玩家移动控制。 简单场景和玩家移动 简单场景玩家移动控制玩家模型视野-摄像…

前言:上一篇的时候,我们已经导入了官方fps的素材,并且对三维模型有了一定了解。接下来我们要构建一个简单的场景让玩家能够有地方移动,然后写一个简单的玩家移动控制。

简单场景和玩家移动

  • 简单场景
  • 玩家移动控制
    • 玩家模型
    • 视野-摄像机挂载
    • 武器-武器挂载和材质
    • 玩家控制-CharacterController
    • 玩家控制-移动脚本
    • 运行效果
  • 补充知识
    • 时间增量
    • 按键输入

简单场景

如果没有素材的时候,我们可以右键添加Plane,但是这种地图没有什么设计感,没有材质贴图啥的。

我们可以从素材中找到地图预制体,搜索Floor,就会看到很多Floor地板场景素材,我选了Floor9×9。
在这里插入图片描述
在这里插入图片描述

玩家移动控制

玩家模型

回到官方fps游戏演示中,玩家第一人称其实是没有模型的,只显示了武器。但是有一些fps游戏中会有模型,就是会只显示手的模型,只不过在官方fps素材中没有。

所以我们玩家并不需要拉一个模型进来。

先创建一个空的GameObject命名为玩家。

视野-摄像机挂载

视野其实就是主摄像机看到的内容,要和玩家的移动同步,所以主摄像机应该挂载在玩家的节点下面。
在这里插入图片描述
挂载后,视野就会随着Player移动和转向。

武器-武器挂载和材质

武器也要挂载在玩家的节点下,因为武器也会跟随玩家一起移动,在Player下面新建Weapon空GameObject,用来后续挂载武器预制体。
在这里插入图片描述

武器的素材在fps官方素材包都有,可以在以下路径找到武器模型。
在这里插入图片描述
把其中一个模型放入到Weapon节点下面,然后右键prefabs-unpack一下,免得操作影响到素材本身的预制体。
在这里插入图片描述
可以发现武器是没有材质的,去素材找到对应贴图“WeaponPistol”,绑定到模型中。全选左边所有的GameObject,然后拖拽材质到右边的Element0中。
在这里插入图片描述
调整Weapon节点位置,让武器出现在主视角中比较合理的部分。
在这里插入图片描述

玩家控制-CharacterController

首先先为我们玩家控制选择合适的方式

玩家控制常用有三种方式,分别是Tranform Translate、Rigid Body+Capsule和CharacterController。

Tranform Translate就是调整物体位置属性,可以随便移动,但是不会产生碰撞。会鬼穿墙,不适合我们游戏的需求,因为fps不能穿墙。

Rigid Body+Capsule符合物理学,可以和Physics Object交互。但是物体之间会有物理碰撞,施加力的作用,就是玩家可以撞开敌人,这个也不太复合我的需求。

CharacterController可以有碰撞,但是不会力的作用,无法和Physics Object交互,提供了大量API。
符合我们fps操作需求。

添加和调整CharacterController组件
为Player添加CharacterController组件。

调整CharacterController胶囊碰撞体,调整到自己认为合适。
在这里插入图片描述

玩家控制-移动脚本

添加和编写脚本
在自己项目代码文件夹下,新建一个C#文件,命名为PlayerController,并挂载到Player中。
在这里插入图片描述
打开PlayerController代码,会默认生成两个函数Start和Update,Start可以用来放一些初始化的数据,只会在开始调用一次,Update则是每帧都会调用。

先从简单的控制功能开始,让角色能够跟着键盘输入,进行前后左右的移动。

代码思路很简单,先获取CharacterController组件和键盘输入,通过键盘数据来调用CharacterController组件的API控制角色移动。

具体代码如下:

public class PlayerController : MonoBehaviour
{public CharacterController m_Controller;public float speed = 6.0F;void Start(){m_Controller = this.GetComponent<CharacterController>();}void Update(){PlayerMovement();}// 控制角色移动public void PlayerMovement(){// CharacertController的Move函数需要输入一个三维的向量// 每个分量表示三维不同方向前进多少Vector3 moveDirection = Vector3.zero;// 获取键盘输入// Horizontal左右移动;Vertical前后移动moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));m_Controller.Move(moveDirection * Time.deltaTime*speed);}
}

把CharacterController组件拖拽到控制代码组件中。
在这里插入图片描述

运行效果

在这里插入图片描述

补充知识

代码思路虽然说的很清楚,但是有一些小细节,可能会有些不懂,补充一些相关知识能理解的更加透彻。

时间增量

会发现玩家控制代码中,移动的距离乘上了deltaTime(时间增量)。

这是因为Update更新是每帧更新一次。

假设说我们帧率是60fps,每次时间增量就是1/60 秒。
游戏设定按下按键后,1秒移动10米,那么每帧刷新的时候距离就要乘上1/60 ,也就是时间增量。
可以确保不同帧率下,速度一致。

按键输入

不同键盘输入的获取,可以通过菜单-Edit-Project Settings查看。
左右对应的是“Horizontal”,前后对应的是“Vertical”。
也可以修改对应键位。
在这里插入图片描述

http://www.mmbaike.com/news/108859.html

相关文章:

  • 软件开发包括网站开发吗优化推广方案
  • 济南 制作网站 公司吗百度关键词优化曝光行者seo
  • 网站的功能和作用是什么南宁做网站公司
  • 网站快照长期不更新网站如何推广营销
  • 用jquery打造个性网站关键词排名技巧
  • pc网站平台sem是什么职位
  • 网络短剧免费观看广东seo快速排名
  • 做网站的服务器cpu异常2024很有可能再次封城吗
  • seo网站制作seo是什么意思电商
  • 开网店 建网站要钱吗文件外链
  • 自己做的网站如何赚钱吗江苏seo排名
  • discuz插件seo关键词优化策略
  • 网站wap转换找平台推广
  • 网站优化找谁武汉大学人民医院精神卫生中心
  • 廊坊网站建设制作长春网络推广公司哪个好
  • 浙江住房和城乡建设网北京关键词seo
  • 中国中国建设银行网站首页百度官方免费下载
  • dede做网站百度app下载最新版本
  • 营销型网站建设技术指标营销管理制度范本
  • 佛山外贸网站制作外贸网站优化公司
  • 中国服装设计网站网络优化工程师有前途吗
  • 前端培训心得上海哪家优化公司好
  • 泸州百度做网站联系四川seo优化
  • 电商网站模块介绍南宁网络推广品牌
  • xml做网站seo站长博客
  • 做盗版网站会怎样在哪里可以找到网站
  • 网站建设项目怎么跟进客户百度信息流怎么做效果好
  • 怎样批量做地级市网站百度关键词首页排名怎么上
  • 网站建设与网站开发b站推广网站mmmnba
  • 电脑可以做网站主机么什么建站程序最利于seo