【Unity】射击小游戏
鼠标控制人物旋转方向
- 前言
- 一、准备一些Object
- 二、代码示例
- 1.Player脚本
- 2.PlayerController脚本
- 3.Hierarchy面板
- 总结
前言
演示
提示:以下是本篇文章正文内容,下面案例可供参考
一、准备一些Object
示例:准备Player,Plane,Obstacle
二、代码示例
1.Player脚本
代码如下(示例):
/****************************************************文件:Player.cs作者:HKZ邮箱: 3046916186@qq.com日期:2022/1/9 12:2:45功能:Player输入(把此脚本挂在Player物体上)
*****************************************************/using UnityEngine;namespace HKZ
{[RequireComponent(typeof(PlayerController))]public class Player : MonoBehaviour{[SerializeField]private float moveSpeed = 5.0f;private Camera viewCamera;private PlayerController playerController;private void Start(){playerController = GetComponent<PlayerController>();viewCamera = Camera.main;}private void Update(){//Movement InputVector3 moveInput = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));Vector3 moveVelocity = moveInput.normalized * moveSpeed;playerController.Move(moveVelocity);//Look InputRay ray = viewCamera.ScreenPointToRay(Input.mousePosition);Plane groundPlane = new Plane(Vector3.up, Vector3.zero);float rayDistance;if (groundPlane.Raycast(ray, out rayDistance)){Vector3 point = ray.GetPoint(rayDistance);//Debug.DrawLine(ray.origin, point, Color.red);playerController.LockAt(point);}}}
}
2.PlayerController脚本
代码如下(示例):
/****************************************************文件:PlayerController.cs作者:HKZ邮箱: 3046916186@qq.com日期:2022/1/9 12:2:59功能:PlayerController方法
*****************************************************/using UnityEngine;namespace HKZ
{[RequireComponent(typeof(Rigidbody))]public class PlayerController : MonoBehaviour{private Vector3 velocity;private new Rigidbody rigidbody;private void Start(){rigidbody = GetComponent<Rigidbody>();}private void FixedUpdate(){rigidbody.MovePosition(rigidbody.position + velocity * Time.fixedDeltaTime);}public void Move(Vector3 moveVelocity){velocity = moveVelocity;}public void LockAt(Vector3 point){Vector3 heightCorrectedPoint = new Vector3(point.x, transform.position.y, point.z);transform.LookAt(heightCorrectedPoint);}}
}
3.Hierarchy面板
总结
【Unity】射击小游戏相关推荐
- Unity3D 2D射击小游戏瞄准线的实现
Unity3D 2D射击小游戏瞄准线的实现 0. 前言 本片文章是对 https://www.bilibili.com/video/bv1sY411V7tx 视频中瞄准线是如何实现的一个讲解教程,欢迎 ...
- 基于pygame的射击小游戏制作(一)让飞船动起来
基于pygame的射击小游戏制作(一)让飞船动起来 一.文件结构 alien_invasion.py 是整个系统的主文件,用来创建游戏中的一系列对象,ai_settings存储设置.screen存储显 ...
- 基于html+JavaScript+css的飞机射击小游戏网页设计与实现
资源下载地址:https://download.csdn.net/download/sheziqiong/86954471 资源下载地址:https://download.csdn.net/downl ...
- 坦克射击小游戏(后续将会升级功能)
坦克射击小游戏(后续将会升级功能) 总体框架 关键技术 未来版本 我的Github 游戏源码在我的Github,感兴趣的的帮忙给颗星呀,并加入我们吧~ 这是我跟着b站韩顺平老师学的一个很锻炼基础的小项 ...
- 射击小游戏源码《90坦克大战》源码H5+安卓+IOS三端源码
cocos creator2.2.2射击小游戏源码<90坦克大战>源码H5+安卓+IOS三端源码,开发脚本为javaScript方便扩展和阅读,支持cocos creator2.X版本,完 ...
- Java 飞机射击小游戏
文章目录 前言 一.系统分析 问题描述 总体设计 功能流程图 二.程序和算法的介绍 FlyingObject(本机和所有敌机父类) Airplane(小敌机类) Bee(小蜜蜂敌机类) Bullet( ...
- Java面向对象(6) —— 射击小游戏
这里做一个射击小游戏,作为对前面Java学习的一个小结. 1.设计 2.知识点总结 主要是在主程序ShootGame.java中引入了一些新知识,swing画图.定时器.鼠标事件处理.其他程序则主要体 ...
- 【转载】c++射击小游戏
转载于:https://www.jb51.net/article/170405.htm 这篇文章主要为大家详细介绍了C++实现简单射击小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小 ...
- Android 自定义View实现炮弹射击小游戏
先看效果图: 这是一个比较简易的射击小游戏,后期可以将圆球,炮筒用其它图片来替换,应该可以变得好看一些.我实现这个效果,主要是为了学习和巩固自定义View的一些知识点.下面我来讲述一下本游戏的设计思路 ...
- 使用construct2制作射击小游戏
使用construct2制作射击小游戏 简介 本次我们使用construct2制作一个HTML5 射击小游戏. 目的是player方向由鼠标操控,移动由键盘控制,同时拥有计分标志. 背景 建立好新空白 ...
最新文章
- jenkins java传递变量,jenkins实现tag构建传入变量不生效的情况解决
- Ubuntu如何卸载安装的软件以FileZilla为例
- 云计算管理工具:根植热土
- java文件下载出现文件名乱码解决办法
- java共享锁排它锁_java 实现共享锁和排它锁
- JVM 自定义的类加载器的实现和使用
- BCGSoft Demo示例展示:对话框示例
- stm32f1的存储器与复位
- linux操作系统的体系结构
- python使用redis_使用Python构建您的第一个Redis Hello World应用程序
- 【Python3网络爬虫开发实战】1.6.2-Tornado的安装
- 河北科技大学计算机考研率,河北科技大学研究生,河北科技大学考研率!
- 手动抛出异常_超实用:关于Java异常设计和处理
- 一文入门RTCM协议及其Message Decode
- wxparse的使用php返回数组输出,小程序应用实践:wxParse多数据循环使用方法
- 单片机程序如何反编译成C语言,如何实现单片机程序代码的反汇编
- 自定义计时器_笑死我了_哈哈哈哈哈嗝儿
- 《数据结构》-图的邻接表表示法(四)
- 行人重识别的挑战 与 最新进展 (35页PPT整理)
- 通过数据了解用户——数据在新品设计中的应用