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

深圳网站设计首选柚米济南网络公司排名

深圳网站设计首选柚米,济南网络公司排名,中国互联网服务平台,网页设计尺寸要求目录 😋FPS游戏Demo 💤1.新建FPS模板项目 ⚒️2.装备枪 💣3.设置射击功能 📺4.制造一个子弹预制体 🎮5.发射子弹 说起来小编学Unity差不多一个月了,都是利用上班摸鱼时间学的(doge.jpg&…

目录

😋FPS游戏Demo

💤1.新建FPS模板项目

⚒️2.装备枪 

💣3.设置射击功能

📺4.制造一个子弹预制体 

🎮5.发射子弹


说起来小编学Unity差不多一个月了,都是利用上班摸鱼时间学的(doge.jpg)。今天终于迎来了一直想做的FPS游戏demo。


【10分钟制作第一人称射击游戏 - Unity游戏开发】 小编是根据小破站这个教程学的,好的教程分享给大家,然后在此基础上小编还加了子弹拖尾和开火特效。


下面小编以博客的形式教大家做这个游戏demo,角色控制器是项目模板自带的,我们只需要加上枪编辑好发射子弹功能就可以了,非常简单。


😋FPS游戏Demo

💤1.新建FPS模板项目

 首先我用的Unity HUB版本是3.3,我们可以直接新建一个FPS模板项目:取好项目名创建项目。

创建好进入项目后场景模板都给我们建好了,运行项目就能发现我们通过WASD和空格键控制胶囊玩家行走和跳跃。


⚒️2.装备枪 

射击类游戏怎么能没有枪呢???我们去资源商店找一把

选了这一把枪在Unity中打开把它导进项目中来 

资源导进来后查看枪的预制件,选择一把你喜欢的颜色:


如果发现枪的预制件是紫色的我们通过下面方式来解决:

解决好材质问题后选择喜欢的枪装到玩家的摄像机(PlayerCameraRoot)上,这样控制玩家视角旋转枪也会跟着旋转。装备好枪后我们还要调整枪到合适的位置。

保存后运行就可以看到玩家拿着枪移动了。


💣3.设置射击功能

有了枪之后我们还要用它射击,先设置一下操作按键(鼠标左键):设置好后保存。

下面我们来验证射击按键有没有触发操作, 双击打开脚本文件(StarterAssetsInputs

我们使用bool类型来判断是否按下,

using UnityEngine;
#if ENABLE_INPUT_SYSTEM && STARTER_ASSETS_PACKAGES_CHECKED
using UnityEngine.InputSystem;
#endifnamespace StarterAssets
{public class StarterAssetsInputs : MonoBehaviour{[Header("Character Input Values")]public Vector2 move;public Vector2 look;public bool jump;public bool sprint;//射击public bool shoot;[Header("Movement Settings")]public bool analogMovement;[Header("Mouse Cursor Settings")]public bool cursorLocked = true;public bool cursorInputForLook = true;#if ENABLE_INPUT_SYSTEM && STARTER_ASSETS_PACKAGES_CHECKEDpublic void OnMove(InputValue value){MoveInput(value.Get<Vector2>());}public void OnLook(InputValue value){if(cursorInputForLook){LookInput(value.Get<Vector2>());}}public void OnJump(InputValue value){JumpInput(value.isPressed);}public void OnSprint(InputValue value){SprintInput(value.isPressed);}//射击public void OnShoot(InputValue value){shoot = value.isPressed;}
#endifpublic void MoveInput(Vector2 newMoveDirection){move = newMoveDirection;} public void LookInput(Vector2 newLookDirection){look = newLookDirection;}public void JumpInput(bool newJumpState){jump = newJumpState;}public void SprintInput(bool newSprintState){sprint = newSprintState;}private void OnApplicationFocus(bool hasFocus){SetCursorState(cursorLocked);}private void SetCursorState(bool newState){Cursor.lockState = newState ? CursorLockMode.Locked : CursorLockMode.None;}}}

我们来创建自己枪的脚本(Gun)并挂载到枪上,我们用来测试射击键是否生效:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using StarterAssets;public class Gun : MonoBehaviour
{private StarterAssetsInputs _input;void Start(){_input = transform.root.GetComponent<StarterAssetsInputs>();}void Update(){//判断是否按下射击键if (_input.shoot){//打印shoot!Shoot();_input.shoot = false;}}void Shoot(){Debug.Log("shoot!");}
}

运行项目点击鼠标左键查看是否生效 

📺4.制造一个子弹预制体 

新建一个球体取名为Bullet,把它缩放成子弹的形状,小编新建了一个橙黄色的材质给子弹上色,并给子弹加了刚体Rigidbody和拖尾组件TrailRenderer

注意调整拖尾的宽度、时间和颜色,有条件的也可以加上拖尾材质😋

Unity之预制体与变体 通过这个我们知道层级里的物体往项目栏下面拖就会生成预制体,我们来生成子弹预制体。

我们还要创建一个空对象(BulletPoint),把它放到枪口位置,这个空对象用来标记子弹的生成点。

🎮5.发射子弹

这里小编放上脚本(Gun)的全部代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using StarterAssets;public class Gun : MonoBehaviour
{private StarterAssetsInputs _input;//子弹预设体序列化[SerializeField]private GameObject bulletPrefab;//游戏对象子弹发射点[SerializeField]private GameObject bulletPoint;//子弹速度[SerializeField] private float bulletSpeed = 999;//特效public GameObject muzzleFlash;// Start is called before the first frame updatevoid Start(){_input = transform.root.GetComponent<StarterAssetsInputs>();}// Update is called once per framevoid Update(){//如果按下射击键执行Shoot方法if (_input.shoot){Shoot();_input.shoot = false;}}void Shoot(){Debug.Log("shoot!");//生成一个子弹实例,每点击射击一次则生成一枚子弹GameObject bullet = Instantiate(bulletPrefab, bulletPoint.transform.position, transform.rotation);//给子弹一个向前的力bullet.GetComponent<Rigidbody>().AddForce(transform.forward * bulletSpeed);//一秒后销毁子弹Destroy(bullet,1);//发射子弹的同时并播放开火特效PlayerFireEffect();}/// <summary>/// 播放开火特效/// </summary>public void PlayerFireEffect(){//启动特效muzzleFlash.SetActive(true);//0.2秒关闭Invoke("UnEffect", 0.1f);}/// <summary>/// 取消特效/// </summary>private void UnEffect(){muzzleFlash.SetActive(false);}
}

(插个眼)小编已经把开火特效预制体上传到资源了,审核通过后在这里更新链接。

链接来了:https://download.csdn.net/download/qq_48512649/88797719 

我们把开火特效(MuzzleFlash)也放到枪下边,和子弹发射点(BulletPoint)处在同一级,并把开火特效放到合适的位置。

放好后我们要取消开火特效(MuzzleFlash),因为只有我们点击开火的时候才会触发。

然后我们给脚本(Gun)装填子弹(Bullet)、子弹发射点(BulletPoint)、子弹速度(BulletSpeed)和开火特效(MuzzleFlash)。 


 小编再给加一个准星,不过这个准星可能因为子弹发射点位置的原因不是很准(doge.jpg)

新进一个图像,然后根据下图的数据设置好,还可以选择自己喜欢的颜色,这样准星就设置好了。


 点击运行项目就是本篇开头演示的效果了,当然了这只是个demo,真正的游戏还要有敌人血条等元素😃小编还要持续学习。本篇先到这里,完结撒花✿✿ヽ(°▽°)ノ✿,拜拜┏(^0^)┛ 

http://www.sczhlp.com/news/115079/

相关文章:

  • 网站建设公司管理流程wordpress表格编辑器
  • 传统网站有没有建设必要做公司官网怎么做
  • 购物网站建设需要多少钱网站建设待遇
  • 中山网站建设seo135免费的站外推广
  • 网站备案客户资料装修公司前十强
  • 武山建设局网站有口碑的常州网站优化
  • 食品营销型网站腾讯云官网入口
  • 达州建设企业网站珠海模板开发建站
  • 图书馆网站建设的意义1688网站
  • 商城网站开发报价网站开发没有完成 需要赔偿吗
  • 课程网站建设方案如何提交网站地图
  • 看车二手车网站源码wordpress 需要事务
  • 【GitHub每日速递 250919】MCP 生态新工具!Registry 服务器注册服务预览版,AI 开发者部署认证全流程揭秘
  • 织梦网站仿站平面设计提高审美网站
  • e网站建设做网站站长一年能赚多少钱
  • 模板建站影响网站的优化排名wordpress二维码手工
  • django做网站和js做网站网站设计公司合肥
  • 自己怎样给网站做推广为什么做电影网站没有流量吗
  • 多元积性函数
  • MX 练石 2026 NOIP #7
  • 用Qt打造永远运行的程序/守护进程/程序启动器/实时监测程序运行/后台运行
  • 做电脑系统最好的网站设计本官方网站电脑版
  • dw可以做移动端网站为什么做手机网站
  • 专做母婴的网站win10 网站建设软件有哪些
  • 网站开发常用jquery插件总结(四)验证插件validation免费设计logo在线生成
  • 提高学历去哪里报名正规网站搜索引擎优化工具
  • 建设部网站质量终身责任承诺书做包装一般看什么网站
  • 汽车行业市场分析那个网站做的好谁有免费网址发给我谢谢
  • 珠海市企业网站建设上海市崇明县建设中学网站
  • 网站服务器重做系统怎么做襄阳网站开发