Unity-3D捕鱼达人小游戏开发 —— 游戏中场景
2018-03-01 19:42
405 查看
复制场景
可以沿用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:时间 ac7d 间隔 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中,需要取到Canvas public 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捕鱼达人小游戏开发 —— 开始场景
- Unity-3D捕鱼达人小游戏开发 —— 游戏中精灵动画的制作
- Unity2D游戏开发基础教程1.2 项目、资源和场景
- Unity游戏开发使用Assetbundle加载场景的原理
- Unity-3D捕鱼达人小游戏开发 —— 鱼的死亡
- android+unity游戏开发基础之场景的切换 ***
- android+unity游戏开发基础之场景的切换
- Unity游戏开发使用Assetbundle加载场景实战
- Unity游戏开发使用Assetbundle加载场景实战
- Unity2D游戏开发基础教程1.2项目、资源和场景
- Unity-3D捕鱼达人小游戏开发 —— 起因和开始的设置以及准备工作
- Unity游戏开发——Unity场景导出XML并且进行加载
- [Unity游戏开发]场景切换
- Unity 2D游戏开发教程之为游戏场景添加多个地面
- Unity2D游戏开发基础教程1.2 项目、资源和场景
- Unity游戏开发使用Assetbundle加载场景的原理
- Unity游戏开发使用Assetbundle加载场景实战
- unity基础开发----切换场景、游戏视图(Game View)、iphone优化
- Unity游戏开发使用Assetbundle加载场景的实战