网站首页地址是什么,网络架构方案规划设计和实施,wordpress 深度优化,python语言特点目录
#x1f60b;FPS游戏Demo
#x1f4a4;1.新建FPS模板项目
⚒️2.装备枪
#x1f4a3;3.设置射击功能
#x1f4fa;4.制造一个子弹预制体
#x1f3ae;5.发射子弹 说起来小编学Unity差不多一个月了#xff0c;都是利用上班摸鱼时间学的#xff08;doge.jpgFPS游戏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.GetVector2());}public void OnLook(InputValue value){if(cursorInputForLook){LookInput(value.GetVector2());}}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.GetComponentStarterAssetsInputs();}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.GetComponentStarterAssetsInputs();}// 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.GetComponentRigidbody().AddForce(transform.forward * bulletSpeed);//一秒后销毁子弹Destroy(bullet,1);//发射子弹的同时并播放开火特效PlayerFireEffect();}/// summary/// 播放开火特效/// /summarypublic void PlayerFireEffect(){//启动特效muzzleFlash.SetActive(true);//0.2秒关闭Invoke(UnEffect, 0.1f);}/// summary/// 取消特效/// /summaryprivate void UnEffect(){muzzleFlash.SetActive(false);}
} 插个眼小编已经把开火特效预制体上传到资源了审核通过后在这里更新链接。 链接来了https://download.csdn.net/download/qq_48512649/88797719 我们把开火特效MuzzleFlash也放到枪下边和子弹发射点BulletPoint处在同一级并把开火特效放到合适的位置。 放好后我们要取消开火特效MuzzleFlash因为只有我们点击开火的时候才会触发。 然后我们给脚本Gun装填子弹Bullet、子弹发射点BulletPoint、子弹速度BulletSpeed和开火特效MuzzleFlash。 点击运行项目就是本篇开头演示的效果了当然了这只是个demo真正的游戏还要有敌人血条等元素小编还要持续学习。本篇先到这里完结撒花✿✿ヽ(°▽°)ノ✿拜拜┏(0)┛