第一人称射击游戏总结概览

  这个游戏小项目为第一人称射击游戏

大概分为几个步骤:

一:主角的制作

  1.控制主角移动的实现

  要点:

    character Controller组件的理解

    rigidbody组件的理解

    colider与rigidbody的理解

    用代码控制主角的移动——键盘交互的实现

    

    //操作主角移动
        //定义3个值控制移动
        float xm = 0, ym = 0, zm = 0; 

//上下左右运动
        if (Input.GetKey(KeyCode.W))
        {
            zm += m_movSpeed * Time.deltaTime;

        }
        else if (Input.GetKey(KeyCode.S))
        {
            zm -= m_movSpeed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.A))
        {
            xm -= m_movSpeed * Time.deltaTime;
        }
        else if(Input.GetKey(KeyCode.D))
        {
            xm += m_movSpeed*Time.deltaTime;

        }

另外贴上player里面一些变量的定义,帮助定义

//Transform 组件
    public Transform m_transform;

    //角色控制器组件
    CharacterController m_ch;

    //角色移动速度
    float m_movSpeed = 3.0f;

    //重力
    float m_gravity = 2.0f;

    //生命值
    public int m_life = 5;

    

在编辑器中为主角显示一个图标:因为之前实现主角的时候是通过一个GameObject->empty上添加character Controller来实现的,所以为了在编辑的时候方便一点,我们用一张图片在编辑器中代表主角,这张图片只能在编辑器中显示,代码如下:

void OnDrawGizmos()
{
    Gizmos.DrawIcon(this.transform.postion,"spawn.tif");

}

  

  2.绑定摄像机

    先定义摄像机的属性

 //摄像机Transform
    Transform m_camTransform;

    //摄像机旋转角度
    Vector3 m_camRot;

    //摄像机高度(主角身高)
    float m_camHeight = 1.4f;

  3.绑定

    接下来就是摄像机位置与朝向和主角的绑定了

  首先:start函数中摄像机位置与朝向的初始化

  

void Start(){

  //获得摄像机的初始位置
    m_camTransform=Camera.main.transform;

   //将摄像机的初始位置与主角初始位置一致
    Vector3 pos=m_transform.postion;
    pos.y+=m_camHeight;
    m_camTransform.postion=pos;

//将摄像机朝向与主角一致
    m_camTransform.rotation=m_transform.rotation;
  m_camRot=m_camTransform.eulerAngles;

  //锁定光标  Screen.lockCursor=true;
}

  另外,关于光标锁定,所谓光标锁定

    

  这里有一个问题,就是Transform.rotation和eulerAngles问题,这里有些不懂,先留下,以后解决

接着,就是在update()函数中随时更新摄像机位置与朝向,使其与主角位置保持一致了

  //获取鼠标移动距离
        float rh = Input.GetAxis("Mouse X");
        float rv = Input.GetAxis("Mouse Y");

        //旋转摄像机
        m_camRot.x -= rv;
        m_camRot.y += rh;
        m_camTransform.eulerAngles = m_camRot;

        //使主角的面向方向与摄像机一致
        Vector3 camrot = m_camTransform.eulerAngles;
        camrot.x = 0; camrot.z = 0;
        m_transform.eulerAngles = camrot;
    //主角移动代码

        //使摄像机位置与主角一致
        Vector3 pos = m_transform.position;
        pos.y += m_camHeight;
        m_camTransform.position = pos;
时间: 2024-10-06 00:39:41

第一人称射击游戏总结概览的相关文章

unity3d游戏开发之第一人称射击游戏

简介 这个教程中,我们详细了解下如何制作一个简单的第一人称射击游戏(FPS).其中将介绍一些基本的3D游戏编程的概念和一些关于怎样如游戏程序员般思考的技巧. 前提 这个教程假定你已经熟悉软件Unity基本操作,掌握了基本的脚本概念. 创建新工程 下载FPS_Tutorial.zip压缩文件,解压,在Unity中打开工程文件. 从Unity安装目录导入Standard Assets资源包. 导入工程后,你会在Unity工程面板中的"Standard Assets"文件夹下看见这些资源内容

u3d5第一人称射击游戏(C#脚本)完整版并在iOS9.3系统上真机运行

参考资料:<Unity3D\2D手机游戏开发>(第二版) +   百度 涉及U3D的功能有:摄像机控制.物理.动画.智能寻路等. 开发工具:Unity3D5.3.4,VS2015,VMplayer12+MacOSX10.11+XCode7.3(我是Windos笔记本用的是苹果虚拟机,MAC真机不需要虚拟机,直接在appstore下载XCode最新版本就可以了,MAC最新版+Xcode最新版本可以直接真机调试运行)+OS9.3系统iphone 说一下U3D,想要在ios上调试的话就要在下载的时候

简单第一人称射击游戏

克隆炮弹和硝烟的预制体. 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 5 public class TankFire : MonoBehaviour { 6 7 public Transform fire_point;//发射点Transform 8 9 /// <summary> 10 /// 子弹的预设体(预先, 设置, 游戏物体) 11 /// </su

关于Unity中FPS第一人称射击类游戏制作(专题十)

当前Unity最新版本5.6.3f1,我使用的是5.5.1f1 FPS第一人称射击类游戏实例 场景搭建 1.创建Unity项目工程和文件目录,保存场景 2.导入人物模型和子弹碎片的资源包charactor.unitypackage(第74) 3.创建一个平面plane,X和Z拉长10倍,把主角模型Assets\Prefabs\person拉近Hierarchy视图中 4.把走路的声音Step.mp3,射击的声音Shot.mp3,平面贴图Ground.jpg,瞄准的准心贴图Crosshairs.p

【原创游戏】迷踪失路——恐怖风格的第一人称迷宫游戏

--第一人称迷宫游戏,一个探险者落入迷宫隧道,他能否靠着仅有的提示走出迷宫? 继合金弹头S之后的练手小游戏. 虽然是恐怖风格但是没加入什么吓人的东西.下载地址:https://share.weiyun.com/f1ee03d5f58b3b721c3c97d2342a51f3 这大概是我创造的最快通关记录吧 O(∩_∩)O~ 原文地址:https://www.cnblogs.com/sols/p/8449331.html

【转】265行代码实现第一人称游戏引擎

原文:html5gamedev.org/?p=2383 总在有个自以为很先进的理念后不久就在网上找到别人的实现! 今天,让我们进入一个可以伸手触摸的世界吧.在这篇文章里,我们将从零开始快速完成一次第一人称探索.本文没有涉及复杂的数学计算,只用到了光线投射技术.你可能已经见识过这种技术了,比如<上古卷轴2 : 匕首雨>.<毁灭公爵3D>还有 Notch Persson 最近在 ludum dare 上的参赛作品.Notch 认为它够好,我就认为它够好! 用了光线投射就像开挂一样,作为

第一人称冒险的《幽暗扫描》VR游戏发布在即

原文标题:第一人称冒险的<幽暗扫描>VR游戏发布在即 Introversion软件最近宣布:这几天将发布第一人称冒险的<幽暗扫描>,这是一个有趣的举动,考虑到Introversion建筑师在Early Access中花费了大约六年时间.现在有消息说,<Scanner Sombre>很快就可以在VR上玩,Introversion的联合创始人马克·莫里斯(Mark Morris)没有正式宣布,只是在本周在德国斯德哥尔摩举行的PDXCon的谈话中提到我. 据悉,莫里斯和联合创

如何使用threejs实现第一人称视角的移动

在数据可视化领域利用webgl来创建三维场景或VR已经越来越普遍,各种开发框架也应运而生.今天我们就通过最基本的threejs来完成第一人称视角的场景巡检功能.如果你是一位threejs的初学者或正打算入门,我强烈推荐你仔细阅读本文并在我的代码基础之上继续深入学习.因为它将是你能够在网上找到的最好的免费中文教程,通过本文你可以学习到一些基本的三维理论,threejs的api接口以及你应该掌握的数学知识.当然要想完全掌握threejs可能还有很长的路需要走,但至少今天我将带你入门并传授一些独特的学

改造u3d第一人称控制器,使之适合Cardboard+蓝牙手柄控制

一.在u3d编辑器中删除FPSController游戏对像中自带的Camera: 二.在u3d编辑器中将CardBoardMain游戏对像添加到FPSController的子物体: 三.修改脚本: 1.删除FirstPersonController脚本中的RotateView方法调用: 2.在CardboardHead中的UpdateHead中,修改FPSController对像的transform的Y轴上的转向: 以上,即可以完成使用cardboard追踪到的头部转向数据来控制第一人称游戏对像