Unity色子的投掷和点数的获得详析

前言

前几天需要一个色子的投掷并且获得朝上点数的Unity脚本,在网上找了很多,都是一个模子刻出来的。

对于2018版的我来说,网上找的都是很早就弃用了的老版本。

好不容易能运行了,结果并不理想,于是又突发奇想做了一个菜鸟专属的色子。

大家可以参观一下,实测Unity2018.1.1f能用。

话不多说先上图。

场景的搭建我就不多说了,主要还是色子。

方法如下

首先,我们需要自己做出色子的六个面(我菜只想到这种方法,反正实现了就行)。

然后根据色子上的点数将每个面改名为一个特有的名字。

我这里为了方便直接用的1 2 3....来命名。

最后给他加上刚体Rigidbody让色子更加真实。

PS:多出来的GameObject是为了调整他的中心点,方便旋转。

接下来,我们让色子旋转起来!

就当鼠标左键点击使,分别给X,Y,Z方向上一个随机值。

然后在色子当前的位置上加上所需要旋转的角度。

这里我们给了一个计时器timer,让他旋转两秒。

if (Input.GetMouseButtonDown(0))

 {
  isdebug = true;
  //取XYZ的随机旋转值
  p_x = Random.Range(minrot, maxrot);
  p_y = Random.Range(minrot, maxrot);
  p_z = Random.Range(minrot, maxrot);
  timer = 0.0f;//点击后计时器清零
 }
 if(timer<2.0f)//规定 旋转时间为两秒
 {
  //旋转色子
  transform.Rotate(new Vector3(transform.rotation.x+p_x, transform.rotation.y + p_y, transform.rotation.z + p_z));
 }

然后我们通过GetNum来获取色子停止时向上的面的名字,

再根据名字得到它的点数。

这里由于我们直接设的数字,

将得到的名字转化为int型就可以了。

void GetNum()
 {
  Transform[] obj=new Transform[6];//声明数组存放色子的六个面
  Transform upobj= transform.GetChild(0).GetChild(0);//声明朝上的面
  for(int i=0;i<6;i++)//循环判断哪个面朝上
  {
   obj[i]=transform.GetChild(0).GetChild(i);
   if(obj[i].position.y>upobj.position.y)
   {
    upobj = obj[i];
   }
  }
  num = int.Parse(upobj.name);//将朝上面 的名字 转化为int
 }

接下来点击左键,就可以获取到我们的数据了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • C#在Unity游戏开发中进行多线程编程的方法

    在这之前,有很多人在质疑Unity支不支持多线程,事实上Unity是支持多线程的.而提到多线程就要提到Unity非常常用的协程,然而协程并非真正的多线程.协程其实是等某个操作完成之后再执行后面的代码,或者说是控制代码在特定的时机执行.而多线程在Unity渲染和复杂逻辑运算时可以高效的使用多核CPU,帮助程序可以更高效的运行.本篇主要介绍在Unity中如何使用多线程. 首先引入C#中使用多线程的类库 using System.Threading; 创建线程实例的四种方式 一.线程执行无参方法 构造

  • Unity3D游戏引擎实现在Android中打开WebView的实例

    本文讲述了如何在Unity中调用Android中的WebView组件,实现内部浏览器样式的页面切换.首先打开Eclipse创建一个Android的工程: UnityTestActivity.java 入口Activity ,Unity中会调用这个Activity中的方法从而打开网页. package com.xys; import android.content.Context; import android.content.Intent; import android.os.Bundle; i

  • Unity色子的投掷和点数的获得详析

    前言 前几天需要一个色子的投掷并且获得朝上点数的Unity脚本,在网上找了很多,都是一个模子刻出来的. 对于2018版的我来说,网上找的都是很早就弃用了的老版本. 好不容易能运行了,结果并不理想,于是又突发奇想做了一个菜鸟专属的色子. 大家可以参观一下,实测Unity2018.1.1f能用. 话不多说先上图. 场景的搭建我就不多说了,主要还是色子. 方法如下 首先,我们需要自己做出色子的六个面(我菜只想到这种方法,反正实现了就行). 然后根据色子上的点数将每个面改名为一个特有的名字. 我这里为了

  • unity下载并和vs2019关联的步骤详解

    首先登录unity官网,附地址https://unity.cn/releases,先下载unityhub,对应系统来下载,我这里用的是windows10,所以我下载了unity Hub(win). unityHub 如下图所示 3. 点击如下图所示的设置按钮,选择你安装的路径,这里要注意的是,如果你想安装多个版本的unity,你就需要多次点开这里更换路径,否则新安装的版本就会不断的覆盖之前安装的版本 4. 激活许可证,点击激活新许可证即可 5. 安装过程如下: 选择安装的版本,点击下一步 如果没

  • Unity技术手册之Button按钮使用实例详解

    目录 实践过程 Color Tint-表示颜色过度 Sprite Swap-表示精灵过度 Animation-动画 实践过程 为了方便更多的人(新手)看明白,使用的汉字,真实项目尽量使用英文规则昂. 创建Button按钮很简单,在Hierachy面板中直接右键找到UI-Button即可.创建后我们可以看到Button其实就是挂载了一个Image组件一个Button组件,顺便携带一个Text子物体. 其中Image组件的属性,小空之间有单独介绍过,在这不赘述了.我们详细看Button组件中的内容,

  • Unity实现卡片循环滚动效果的示例详解

    目录 简介 定义卡片的摆放规则 调整卡片的层级关系 调整卡片的尺寸大小 动态调整位置.层级和大小 移动动画 按钮事件 简介 功能需求如图所示,点击下一个按钮,所有卡片向右滚动,其中最后一张需要变更为最前面的一张,点击上一个按钮,所有卡片向左滚动,最前面的一张需要变更为最后一张,实现循环滚动效果. 最中间的一张表示当前选中项,变更为选中项的滚动过程中,需要逐渐放大到指定值,相反则需要恢复到默认大小. 实现思路: 定义卡片的摆放规则: 调整卡片的层级关系: 调整卡片的尺寸大小: 卡片向指定方向移动,

  • python模拟投掷色子并数据可视化统计图

    目录 前言 1.模拟掷色子 2.我们来模拟投掷两个色子 前言 这里讲解模拟掷色子,并实现数据可视化的操作.数据可视化可以帮助我们更好地分析相关的统计结果,获得更为直观的统计图,帮组我们更好的处理一些事情. 可视化的终极目标是洞悉蕴含在数据中的现象和规律,这里面有多重含义:发现.决策.解释.分析.探索和学习.通过数据可视化,可以更好的分析相关的统计结果,以提高我们的工作效率.Matplotlib 可能是 Python 2D-绘图领域使用最广泛的套件.它能让使用者很轻松地将数据图形化,并且提供多样化

  • 原生js结合html5制作简易的双色子游戏

    想转html5游戏开,这是学习练手的东西,最开始是用面向过程的方式实现,后面用面向对象的方式实现(被坑了)-- 演示地址:http://runjs.cn/detail/ss8pkzrc html代码 <html> <head> <meta charset="utf-8"/> <title>掷色子的游戏</title> </head> <body> <table> <tr> <

  • C语言模拟掷骰子游戏

    目录 实现掷骰子小游戏 实现原理 源码介绍 效果展示 今日练习 题目描述 问题分析 代码实现 运行结果 实现掷骰子小游戏 在开始今天的练习前,我先写一个有趣的C语言小游戏--掷骰子(zhì tóu zi) 实现原理 大家对骰子应该不陌生,让我们先看看百度词条的介绍: 掷骰子 拼音:zhì tóu zi 骰子: 既色子,用象牙.骨头或塑料等较坚硬物体做的小四方块:每面刻有点数,一到六,常用一对做各种游戏或赌博. 掷骰子:先摇动骰子,然后抛掷使两个骰子都随意停止在一平面上. --百度百科 掷骰子时,

  • Python+matplotlib绘制条形图和直方图

    目录 摘要 一.bar()函数 二,hist()函数 三.数据统计 摘要 先介绍条形图直方图,然后用随机数生成一系列数据,保存到列表中,最后统计出相关随机数据的概率并展示 前述介绍了由点进行划线形成的拆线图和散点形成的曲线图,连点成线,主要用到了matplotlib中的plot()和scatter()这个函数,但在实际生活工作中,不仅有折线图,还经常会出现月份经济数据对比图,身高统计图等,制成图表就很容易对比看出差异. 下面用matplotlib中bar()函数和hist()来实现条形图和直方图

  • C#实现winform版飞行棋

    本文实例为大家分享了C#实现winform版飞行棋的具体代码,供大家参考,具体内容如下 游戏界面 游戏规则: 1.两个人轮流掷骰子红人和绿人 2.投掷出2,4,6点出门,投掷出6点可以在出门后再次投掷行走 3.地图长度共100步 4.地图中除过普通地板之外,另设六种特殊功能地板 (1) 踩到香蕉皮,退6步 (2) 踩到时空,前进6步 (3) 踩到陷阱,暂停一回合 (4) 踩到星星,可以再投掷一次 (5) 踩到移魂大法,可以做出选择与对方互换位置 (6) 踩到手枪,可以击退对方3步 (7) 踩到大

  • 基于C++实现掷双骰游戏的示例代码

    在最流行的博彩游戏中有一种名为“掷双骰”(craps)的骰子游戏,这种游戏在世界各地的娱乐场所和大街小巷非常受欢迎.游戏的规则很简单: 玩家掷两个骰子.每个骰子有六面,分别含有1.2.3.4.5和6个点.掷完骰子后,计算两个朝上的面的点数之和. 1.如果首次投掷的点数总和是7或者11,那么玩家赢: 2.如果首次投掷的点数只和事2.3或者12(称为"craps"),那么玩家输(即庄家赢); 3.如果首次投掷的点数只和事4.5.6.7.8.9或者10,那么这个和就成为玩家的“目标点数”.要

随机推荐