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

招聘网站建设人员条件百度搜索引擎首页

招聘网站建设人员条件,百度搜索引擎首页,wordpress.com log in,网上开店铺需要什么流程前言:上一篇的时候,我们已经导入了官方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.hkea.cn/news/991572/

相关文章:

  • 网络营销网站建设实训网络营销步骤
  • 网站都有后台吗百度竞价开户公司
  • 秭归网站建设网站seo优化心得
  • wordpress电影网站模板seo运营
  • 公司注册网上核名业务如何终止网站排名优化怎么做
  • 网站建设伍金手指下拉2网上推广平台
  • 沧州网站建设公司翼马爱情链接
  • 计算机学了出来干嘛免费优化推广网站的软件
  • 宁波网站建设优化湖南seo优化按天付费
  • 门户网站手机版google官网入口
  • 深圳市工程建设交易服务中心网站软文什么意思
  • 大型网架加工厂成都网站建设方案优化
  • 导航网站的广告怎么做的千锋教育官方网
  • etc网站开发票网站制作软件免费下载
  • 上海seo网站设计2022十大网络营销案例
  • 还有做网站的必要吗网站运营推广方案
  • 企业营销型网站建设厂家品牌搜索引擎服务优化
  • 学校网站建设计划怎么成为百度推广代理商
  • 普陀网站开发培训学校seo快速优化
  • 建一个商城网站多少钱免费的网站推广软件
  • 手机网站解决方案看网站搜什么关键词
  • 顺企网江西网站建设宜昌今日头条新闻
  • 坪山网站建设行业现状网页设计与制作代码成品
  • 网站建设需求文档模板下载学大教育一对一收费价格表
  • 小型网站怎样优化百度首页官网
  • 网站开发与iso9001关系百度上做推广怎么做
  • wordpress怎么设置导航镇江seo
  • 番禺建设网站服务软文写作网站
  • 有哪些专做自然风景图片的网站石首seo排名
  • 移动网站虚拟主机seo 排名 优化