Unity-3D捕鱼达人小游戏开发 —— 游戏中场景
复制场景
可以沿用start的场景,删除Logo和按钮即可
通过command+D复制start修改名字
添加水波纹
创建一个3D的plane
先将plane清零,取出碰撞体,坐标不是固定的,由实际情况而定,将plane放在镜头和Main Camera之间,让plane将其挡住
为其拖一个水波纹的材质,对图片进行特殊处理,但是是静态的,需要脚本让其跑起来
效果图
Ef_WaterWave.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Ef_WaterWave : MonoBehaviour {// 材质public Material material;// 材质里面的图片数组public Texture[] textures;// 当前已经放到图片的编号private int index = 0;void Start () {// 获取当前plane的材质material = GetComponent<MeshRenderer>().material;// 因为Update是按照一帧一帧计算的,太快了所以使用InvokeRepeating// p1:方法名 p2:时间间隔 p3:速率InvokeRepeating("changeText", 0, 0.1f);}// 切换材质里图片的函数void changeText(){// 主材质里的索引图material.mainTexture = textures[index];// index按照textures长度循坏index = (index + 1) % textures.Length;}void Update () {}
}
给plane挂上脚本,再赋值
返回按钮
创建一个新的Canvas,让其Order in Layer为90,即这个Canvas里的所有控件都在默认层下,次序为90
在新的Canvas中创建返回按钮
同样的方法创建一个设置按钮,创建一个空项目对他们进行分类,空项目的锚点要用按住option的右下角的那个
倒计时
等级
填充物
然后再调整填充物和被填充的尺寸
取消滑动条的可交互,不然用户可以更改经验值
炮台
底座
炮的组装
杂七杂八最终显示效果如图
炮随鼠标转动
要让中间的那根轴和鼠标一起转动
在API中找到一个方法
public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector3 worldPoint);
返回鼠标在当前Canvas的坐标
为炮台旋转写的脚本GunFollow.cs
public class GunFollow : MonoBehaviour {// 枪在Canvas中,需要取到Canvaspublic RectTransform UGUICanvas;// 方法需要传入Camera,可以用Camera.main代替,但是有多个Camera可能会出现问题public Camera mainCamera;void Start () {}void Update () {// 方法返回的计算好的值,鼠标在当前Canvas的坐标Vector3 mousePost;RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas,new Vector2(Input.mousePosition.x, Input.mousePosition.y),mainCamera,out mousePost);// 获得旋转的角度float z;// 判断鼠标在炮台的左方还是右方if (mousePost.x > transform.position.x){// 返回的永远是正值,右边的角度是负值,所以要变号z = -Vector3.Angle(Vector3.up, mousePost - transform.position);}else{z = Vector3.Angle(Vector3.up, mousePost - transform.position);}// Quaternion四元数,localRotation只接受四元数// Quaternion.Euler:欧拉角对应的四元数transform.localRotation = Quaternion.Euler(0, 0, z);}
}
Unity-3D捕鱼达人小游戏开发 —— 游戏中场景相关推荐
- H5 canvas基础入门到捕鱼达人小游戏实现(1)
为什么学习canvas? 看见别人网页一些非常炫酷的效果,羡慕不已,于是对canvas产生了浓厚的兴趣,所以想仔细学习学习canvas.下面就一起来学习吧,本文为系列文章,最后会编写一个简单版的捕鱼达 ...
- 基于c语言Easyx库的捕鱼达人小游戏
基于c语言Easyx库的捕鱼达人小游戏(一) 文章目录 基于c语言Easyx库的捕鱼达人小游戏(一) 主菜单 游戏实现 捕鱼计分 下一阶段 主菜单 (写在前面的话:使用EASY-X库一定要命名为.cp ...
- 捕鱼达人小游戏——Java实现
一.捕鱼达人小游戏,界面如下图: 二.有需要的代码自取: 链接:https://pan.baidu.com/s/1s5G2DwfSMlHoE4STanjKyw 提取码:evbg
- html实现经典捕鱼达人小游戏
文章目录 1.设计来源 1.1 游戏界面 2.效果和源码 2.1 动态效果 2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_4315 ...
- 1.15 从0开始学习Unity游戏开发--游戏UI
上一章中,我们剩下最后一个任务,需要支持鼠标控制准心来进行设计,那么准心本质上就是一个始终呈现在屏幕上的一个图片,你当然可以用一个3D物体来制作,之前讲解渲染概念的时候也提到过,我们的屏幕就是相机的近 ...
- H5数独游戏开发——游戏通关及重玩
如何判断游戏是否通关?通关后如何重新开始游戏,让用户重玩?今天给大家详细介绍如何实现以上功能.先看一下数独游戏通关后的提示界面,截图如下: 首先,我们需要判断游戏是否通关,那么如何判断呢?有两个条件: ...
- H5数独游戏开发——游戏中的事件处理
假设你正在玩一款角色扮演游戏(RPG),主角走进了一家店铺,你用鼠标点击店铺里管家,这时屏幕显示一个待售物品菜单,然后你可以选购你需要的物品.那么,你知道从你点击鼠标的那一刻起,游戏是怎样响应的吗?让 ...
- Android游戏开发–游戏循环
游戏循环是每个游戏的心跳. 到目前为止,我们仅使用了非常简单的一种(您可以在此处找到),无法控制我们更新游戏状态的速度或速度以及要渲染的帧. 概括地说,最基本的游戏循环是while循环,该循环一直执行 ...
- android_Android游戏开发–游戏循环
android 游戏循环是每个游戏的心跳. 到目前为止,我们使用的是非常简单的游戏(您可以在此处找到),无法控制我们更新游戏状态的速度或速度以及要渲染的帧. 概括地说,最基本的游戏循环是while循环 ...
- android游戏开发_Android游戏开发–游戏循环
android游戏开发 游戏循环是每个游戏的心跳. 到目前为止,我们仅使用了非常简单的一种(您可以在此处找到),无法控制我们更新游戏状态的速度或速度以及要渲染的帧. 概括地说,最基本的游戏循环是whi ...
最新文章
- lamp不解析php,LAMP环境下不能解析php原因及排查步骤
- python中各操作符的优先级_在Python中实现操作符优先级的一般方法是什么
- Java中常见数据结构Map之HashMap
- Android 学习笔记 BroadcastReceiver广播...
- 搜狗拼音输入法的安装和基本使用
- 验证Oracle收集统计信息参数granularity数据分析的力度
- GeneralUpdate 2021.08.14更新公告
- C和指针之数组编程练习5 (矩阵相乘)
- 欢乐纪中A组周六赛【2019.5.25】
- EasyUI权限(二星权限)
- RestTemplate的异常 Not enough variables available to expand
- ORACLE 常用函数——转换函数
- Java 设计模式 Adapter 类适配器 模式
- 来兄弟连了,你还在用面向过程唱高音歌曲的你就OUT了
- 抱抱脸(hugging face)教程-中文翻译-使用 Tokenizers 的 tokenizers
- excel填充序列_表格技巧—Excel表格中如何一键下拉填充
- 普通人应该怎么赚钱,下班后可在家操作的四个兼职副业分享
- 我给互联网大佬们换上了女装
- 对JVM还一知半解?这篇文章让你彻底搞定JVM
- 网狐、6878子游戏下载失败