unity3d实现水果机(随机)跑马灯效果
初次发文,多多谅解。美工没做,都是网上的图片。
思路!
一、随机产生不等页面布局【跑马灯】(目前可实现22个和18个…)
二、随机在跑马灯上产生不一样的图片【不同于现实中固定的大奖】
三、图片会逐步变大变小变色
四、随机产生跑马效果时长
五、结算分值。
图一
整体效果
第一步解决生成图片
注意每个grid的位置 做到上下左右对其的标准,因为生成的图片会用grid自动排序所以要摆放好位置才能起到连贯性。
图二添加ugui ,用grid的形式存储图片
导入需要变换的图片
图四、grid的参数设置
图五、制作预制图片(因为这个图片是生成的所以要预制)
**实现的效果:**运行脚本每个预制体增加脚本(运行时产生大、变色的效果)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class tu_jiaoben : MonoBehaviour {
Vector2 tu_daxiao;
// Use this for initialization
void Start () {
tu_daxiao = this.gameObject.transform.localScale;
}
public bool ji_huo=false;
public float TimeA;
float DTime = 0;
// Update is called once per frame
void Update () {
if (ji_huo)
{
this.gameObject.transform.localScale = new Vector2(tu_daxiao.x * 1.2f, tu_daxiao.y * 1.2f);
this.GetComponent<Image>().color = Color.red;
DTime += Time.deltaTime;
if (DTime > TimeA)
{
DTime = 0;
this.gameObject.transform.localScale = tu_daxiao;
this.GetComponent<Image>().color = Color.white;//赢得积分
ji_huo = false;
}
}
}
public string wen_ben="";
/// <summary>
/// 变大的操作
/// </summary>
public void da()
{
this.gameObject.transform.localScale = new Vector2(tu_daxiao.x * 1.2f, tu_daxiao.y * 1.2f);
this.GetComponent<Image>().color = Color.red;
wen_ben = this.GetComponentInChildren<Text>().text;
}
}
第二步、脚本生成页面布局
有了预制图片、页面布局Grid那么就要生成布局了
以下代码中包含生成布局、点击旋转(跑马)、投注、得分显示、总分显示、投注button、计算…我就不一一分开了 因为这是一个脚本。
实现的效果:
点击下方跑【投注按钮】、点击中间【水果转转】运行。
图片会变大、变色、恢复,进行到下一个图片…然后依次,直到停止旋转。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
///
/// 转盘
///
public class ZhuanPan : MonoBehaviour {
///
/// 脚本单例模式
///
public static ZhuanPan _insert;
///
/// 用于保存 图片的大小
///
Vector2 tu_daxiao;
///
/// 存储 4个模块
///
public GridLayoutGroup []Grid;
///
/// 预制体(图片)
///
public Image Tu;
void Start () {
_insert = this;
PanDuan();
}
void Update () {
}
/// <summary>
/// 总共是四组
/// </summary>
int diji_zu=0;
/// <summary>
/// 随机产生滚动的的时间长短
/// </s