Unity(使用GUI制作第一人称鼠标准星)
属性
简介 |
方法 |
注意:准星一般都放在屏幕正中央,所以屏幕的(宽高/2)可得中心点 | |
屏幕宽度 | Screen.Width |
屏幕高度 | Screen.Height |
矩形宽度 | 自己声明的变量这里使用W代替 |
矩形高度 | 自己声明的变量这里使用H代替 |
准星间距 | 自己声明的变量这里使用D代替 |
解释图
写入过程
因为我们想要动态准星所以打算自己用代码写一个,而不用图片直接贴上去
- 先声明准星的宽高,和间距其次就是准星贴图了
- 再声明两个变量GUIStyle(用来自定义设置GUI参数)和Texture(准星背景辅助参数,也可以理解为凑数的)
- 在游戏刚开始的时候将GUIStyle实例化并且将准星贴图赋值给其中的normal.background属性
- 使用GUI.Box方法在屏幕中心绘制四个矩形绘制成一个准星
- Box(Rect,Image,GUIStyle)(Unity文档中GUIStyle简介)
- 这里的Rect表示创建一个矩形框架(坐标x,坐标y,矩形宽度,矩形高度)
- Image(在这个方法中并没有实质性的作用,但是想要使用这个方法必须要填入Image,所以创建一个但不赋值起到凑数作用)
- GUIStyle(我们准星的设置是在这个参数里,如果不给这个参数赋值的话使用的将会是Unity自带的GuiStyle设置)
- 在这里我就声明静态准星了,动态的话在某个动作的时候改变坐标、间距和宽高就行了
实例
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FPS_CrossHair : MonoBehaviour
{[Header("准星的长度")]public float width;[Header("准星的高度")]public float height;[Header("上下(左右)两条准星之间的距离")]public float distance;[Header("准星背景图")]public Texture2D crosshairTexture;private GUIStyle lineStyle; // GUI自定义参数private Texture tex; // 准星背景辅助参数private void Start(){lineStyle = new GUIStyle(); // 游戏开始实例化背景图lineStyle.normal.background = crosshairTexture; // 将背景图默认背景设为准星背景}private void OnGUI(){// 左准星GUI.Box(new Rect(Screen.width / 2 - distance / 2 - width, Screen.height / 2 - height / 2, width, height), tex, lineStyle);// 右准星GUI.Box(new Rect(Screen.width / 2 + distance / 2 , Screen.height / 2 - height / 2, width, height), tex, lineStyle);// 上准星GUI.Box(new Rect(Screen.width / 2 - height / 2, Screen.height / 2 - distance / 2 - width, height, width), tex, lineStyle);// 下准星GUI.Box(new Rect(Screen.width / 2 - height / 2, Screen.height / 2 + distance / 2, height, width), tex,lineStyle);}}
Unity(使用GUI制作第一人称鼠标准星)相关推荐
- 利用Python制作第一人称射击小游戏 含源代码
大家好 我是毕加锁 (锁!) 今天教大家利用Python制作第一人称小游戏 涉及知识点 1.sprites 2.pygame混音器 3.图章 4.python基础语法 .代码 1发射声 from ...
- 【unity】游戏的第一人称编写,限制角色视野范围,unity的Rotate使用情况区分一次搞懂
刚开始学习unity的时候很容易对众多的API搞糊涂,特别是博客里很多博主的写作思路十分混乱,完全不能看懂,看了书之后感觉清晰了很多,总结一下. 如果你还分不清世界坐标系和Self坐标系,建议先去看下 ...
- Unity VR学习:第一人称射击游戏(1)
Unity VR学习:第一人称射击游戏(1) 1.封装标签和场景淡入淡出效果实现 (1) 封装标签 1.标签有Player,Enemy,GameController,Fader(画布),MainCam ...
- unity之使用FPS第一人称后鼠标消失
我在使用standard assets里的fps第一人称视角开始游戏后,鼠标消失,后来发现是fps默认将鼠标锁住,只需要找到并点击fps脚本里的mouse look下的Lock Cursor,再次运行 ...
- Unity 3D建筑内部第一人称漫游,房间切换漫游
在Unity中经常用到第一人称漫游,比较常用的是用Unity Assets中导入的Charaters包,里面包含第一人称控制器和第三人称控制器,将第一人称控制器拖入场景中就可以用AWSD实现前后左右移 ...
- UE4C++(10):制作第一人称射击游戏
10/15/2020 文章目录 添加日志消息 游戏模式(AGameModeBase) 角色类(Pawn) 为什么使用C++还要使用蓝图 注意事项! 实现发射物 创建球体碰撞组件 发射物运动组件 实现射 ...
- 【Unity学习笔记】第一人称射击游戏
1.新建一个地面Plan. 2.搭建好Player模型.把枪的模型拖入,调整好角度.由于是第一人称游戏.把camera也拖入Player下. 3.编写playerMove脚本,实现asdw控制人物的前 ...
- unity中自制模拟第一人称视角
public float sensitivityX = 5f; public float sensitivityY = 5f; public float sensitivetyKeyBoard = 0 ...
- ThingJS平台制作第一人称视角下的巡更效果
今天想要做一个类似巡更的过程,就像是在学校保安巡更,小区保安巡更一样.巡更需要用到相应的场景,比如说:园区.学校.超市以及工厂等等,然后需要规划好路线也就是巡更的路线,并且视角要跟随路线来变换,从而达 ...
最新文章
- Selenium2+python自动化46-js解决click失效问题
- 下列代码的执行结果是 php,执行下列代码后的结果是: $x=15; echo $x++; $y=20; echo ++y;...
- Spring-AOP实现的两种方式
- Angular Component的DOM级别的单元测试方法
- Android一个简单易用的进度条
- [建议]我对博客园的发展的一点想法
- [小说连载]张小庆,在路上(2)- 兰博和威震天
- Team Viewer 远程链接一直显示-正在初始化显示参数
- Win32扫雷(根据以前的控制台扫雷实现)
- 怎样将图片制作转换圆形图片
- nodejs代码将word转成图片
- 计算机视觉、图像处理学习资料汇总
- Echars 旭日图 鼠标浮动 显示value值
- 三:Sensor SLPI层代码分析---
- 网页打开新窗口——Window.open()详解
- 请广大编程爱好者加入QQ群5907439
- 精英计算机主板,精英主板
- kinetics-skeleton格式行为数据提取方法
- 上架发布应用市场资料准备iOS和Androd
- Ubuntu安装Go环境以及GoLand编辑器