Holle 好久没更新了,实在想不到更新啥了,就更新下最近痴迷的unity吧。

分为四个板块,实现第三人称视角,上下左右移动,鼠标进行发射炮弹,鼠标改变移动方向

我们的需要准备的工作有:unity

自己制作一个喜欢的模型player(玩家) 坦克 士兵 飞机什么都行 将玩家放在地面上

一,实现上下左右移动 镜头跟随玩家 实现第一人称视角 鼠标实现位置方向的改变

       注意事项: 三维和二维的上下左右是不一样的 二维的上是up 下是down 而三维是没有上(除了跳跃,飞行)三维世界中上 forward 是前进 下 back 是后退

首先我们创建个c#脚本 命名为First

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class First : MonoBehaviour
{private Transform camTrans;private Vector3 camAng;private float camHeight = 1f;// Start is called before the first frame updatevoid Start(){camTrans = Camera.main.transform;Vector3 startPos = transform.position;startPos.y += camHeight;camTrans.position = startPos;camTrans.rotation = transform.rotation;camAng = camTrans.eulerAngles;}// Update is called once per framevoid Update(){Rot_move();if (Input.GetKey(KeyCode.W)){this.transform.Translate(Vector3.forward * Time.deltaTime * 10.0f);}if (Input.GetKey(KeyCode.S)){this.transform.Translate(Vector3.back * Time.deltaTime * 10.0f);}if (Input.GetKey(KeyCode.A)){this.transform.Translate(Vector3.left * Time.deltaTime * 10.0f);}if (Input.GetKey(KeyCode.D)){this.transform.Translate(Vector3.right * Time.deltaTime * 10.0f);}}void Rot_move(){float y = Input.GetAxis("Mouse X");float x = Input.GetAxis("Mouse Y");camAng.x -= x;camAng.y += y;camTrans.eulerAngles = camAng;camTrans.position = new Vector3(this.transform.position.x, camTrans.position.y, this.transform.position.z);float camy = camAng.y;this.transform.eulerAngles = new Vector3(this.transform.eulerAngles.x, camy, this.transform.eulerAngles.z);Vector3 startPos = transform.position;startPos.y += camHeight;camTrans.position = startPos;}
}

将文件植入我们的玩家,并给玩家植入盒状碰撞器(Box Collider) 角色控制器(Character Controller)刚体(Rigidbody)

 二,鼠标进行炮弹的发射按钮,定时销毁炮弹

我们在玩家文件夹中新建一个空文件,将这个空文件放到我们炮孔前面,作为炮弹发射的地点

 创建一个球体,将球体拉入我们的资源中 后删除在运行游戏里的球体,赋予球体刚体属性

创建一个c#脚本文件命名为Shoot

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Shoot : MonoBehaviour
{private void OnTriggerEnter(Collider other){if (other.tag == "one"){Destroy(other.gameObject);}}int Speed = 100;public Rigidbody Bullet;public Transform FPonit;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if (Input.GetButtonDown("Fire1")){Rigidbody clone;clone = (Rigidbody)Instantiate(Bullet, FPonit.position, FPonit.rotation);clone.velocity = transform.TransformDirection(Vector3.forward * Speed);}}
}

将这个文件植入我们的玩家中

Bullet为发射你子弹的模样,我们将刚刚创建的球体放进去

F Ponit 为发射你子弹的位置,我们将刚刚创建的空对象放进去

发射炮弹后我们会发现发射了文件还是在里面,那我们一直发射,文件就会特别多,导致优化不行,我们直接个给子弹定义个自动销毁

我们新建个c#脚本文件命名为Xiaohui  定义为2秒销毁

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Xiaohui : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Destroy(gameObject, 2.0f);}// Update is called once per framevoid Update(){}
}

将这个脚本植入我们的子弹资源里

好了大功告成了

unity实现坦克第一人称视角移动 鼠标发射,位置改变相关推荐

  1. 【游戏开发实战】Unity手游第一人称视角,双摇杆控制,FPS射击游戏Demo(教程 | 含Demo工程源码)

    文章目录 一.前言 二.实现方案 1.无主之地,第一人称视角 2.我之前做的摇杆控制 3.第一人称视角 + 摇杆控制 三.开始实战 1.资源获取:Unity AssetStore 2.Low Poly ...

  2. 【Unity】第一人称视角开发

    需求 我的需求是在Unity构建一个第一人称视角,实现移动跳跃功能. 主要参考的是这篇博文提供的方案,不过该方案为了只允许一次跳跃,单独在人物底部构建了一个空对象,我无需此限制,因此对其进行了简化. ...

  3. 关于Unity 3D第一人称视角移动时相机抖动的问题

    Unity 3D中第一人称视角Camera相机抖动的原因及解决方法 文章目录 前言 问题反思 解决方法 错误代码 修改后数据 总结扩展 前言 在使用Unity自制第一人称FPS游戏时,场景运行时鼠标移 ...

  4. Unity使用键盘wasd控制绑定角色和第一人称摄像机随鼠标移动

    首先创建一个物体,然后里面加上摄像机并且调整到相应的位置 在创建的物体上添加一个组件character controller 键盘控制移动代码 public float speed = 6.0F; p ...

  5. unity中自制模拟第一人称视角

    public float sensitivityX = 5f; public float sensitivityY = 5f; public float sensitivetyKeyBoard = 0 ...

  6. Three.js漫游相机控制器/three.js第三人称视角漫游/three.js第一人称视角漫游

    Three.js三维可视化引擎没有实现第三人称漫游控制器,第一人称实现的也很一般,大部分满足不了需求,需要自己手动去写一个.以下是模仿其它平台写的第三人称视角漫游,也可以简便的改写成第一人称. 下面是 ...

  7. ThreeJS第一人称视角处理

    简介 第一人称控件指针锁定API允许您在游戏界面中锁定鼠标或其他指针设备,以便您不用绝对定位光标就可以获得坐标变化值,从而准确地判断用户正在做什么,并且还可以防止用户意外地进入另一块屏幕或别的什么地方 ...

  8. OpenGL入门暨用C#做个3D吞食鱼(一)第一人称视角的实现

    OpenGL入门暨用C#做个3D吞食鱼(一)第一人称视角的实现 废话少说先上图: 图表 1第一人称视角效果图 源代码在文末. 为了学OpenGL,尝试各种代码示例是不错的选择.但是我就经常因为视角不合 ...

  9. 7999元大疆最新无人机,支持第一人称视角极速拍摄,直接起飞

    穿越山口.过火圈,体验2秒加速到100公里的急速飞行: 可以从第一视角体验拍摄效果,"就像是开启了第三只眼": 而且,只需要靠手部动作"单手操作",就能操控: ...

最新文章

  1. 网络端口的分类和作用
  2. 让win7提速几倍的10个方法
  3. 在Linux上编写并运行Python文件
  4. yarn界面杀死application
  5. “编程能力差,90%输在了数学上!”CTO:其实你们都是瞎努力!
  6. Git 常用命令[持续更新...]
  7. VCSA 6.7 U3部署(vCenter Server Appliance(VCSA)6.7 U3部署指南)
  8. Flutter基础—你好,Flutter!
  9. 【C语言】【笔记】ASCII码值表;常用转义字符表
  10. TDD (test driver development)测试驱动开发
  11. PHP icbc工商银行开放平台聚合支付,二维码扫码支付对接步骤
  12. 【Professional English】Words Summary
  13. 如何修改电驴服务器地址,emule设置连接服务器地址
  14. drcom for linux,Ubuntu Linux 6.10下用Dr.COM(drcom-client)接入网络的问题
  15. Linux 中的rsh,ssh
  16. java解析excel手机号变成科学计数法形式解决
  17. XGBOOST回归用法和官方参数解释
  18. 【国外教程】VRay Next for SketchUp 办公建筑与渲染教程
  19. 英特尔服务器主板安装系统,基于主板 S2600WF 的英特尔® 服务器系统 R2308WFTZSR 2U云计算服务器...
  20. 计算机培训艺术字体,Word2019中使用艺术字,设置文字倒置

热门文章

  1. 深度学习YOLO模型
  2. 惠普victus光影精灵8怎么样
  3. 面试官:你在工作做遇到过什么难以解决的bug或者技术难题,说说你是什么解决的?
  4. html hidefocus=“true“
  5. java计算机毕业设计街舞公司管理系统MyBatis+系统+LW文档+源码+调试部署
  6. WeCode在线少儿编程 |海底捞智慧餐厅机器人送餐成热搜 颠覆传统用餐体验
  7. 坐商行商,你准备好了吗?
  8. 树莓派3B+ 开启超频
  9. ubuntu 11.04英文环境下使用ibus输入中文,并且自动启动输入法 ibus介绍
  10. 解决Microsoft Bing 支持 ChatGPT后加入等待队列出错问题