第一个工程3-代码解释二 ,检查球的的静止和一杆的结束
来源:互联网 发布:大股东知乎 编辑:程序博客网 时间:2024/05/17 04:24
现在还没处理球飞出去的情况,所以检查一个球没有被SetActive(false),同时速度和角速度小于一个微小值,可以认为它静止,所有存在的球静止可以认为一杆结束
using UnityEngine;
using System.Collections;public class BallCheck : MonoBehaviour {
GameObject[] numberBalls;
GameObject whiteBall;
public GameObject tableStickController;
StickController stickController;
// Use this for initialization
void Start () {
numberBalls = GameObject.FindGameObjectsWithTag("NumberBall");
if (numberBalls.Length != 15)
Debug.Log ("Less than 15 Balls?");
whiteBall = GameObject.FindGameObjectWithTag ("WhiteBall"); //取得十五个球和白球,以便后面使用
stickController = tableStickController.GetComponent<StickController> ();
}
// Update is called once per frame
void Update () {
if (SceneManager.isBallMoving == true) { //isBallMoving == true,说明一杆开始,此时每帧检查,直到白球和各球都静止,设为false,停止检查,同时执行,stickController.ResetTableStickAndRelated ();进行一杆结束的判断和处理
if (CheckOneBallMotionless(whiteBall) &&CheckAllNumberBalls ()) {
SceneManager.isBallMoving = false;
stickController.ResetTableStickAndRelated ();
}
}
}
//检查所有十五球,其中调用一个球的检查CheckOneBallMotionless
bool CheckAllNumberBalls() {
for (int i = 0; i < numberBalls.Length; i++) {
if(!CheckOneBallMotionless (numberBalls[i])) {
return false;
}
}
return true;
}
//检查参数传入的那个球是否静止,oneBall.activeSelf == true确定球未落袋;oneRigidbody.velocity.magnitude < 0.0001 && oneRigidbody.angularVelocity.magnitude < 0.0001 当角速度和速度小于一微小值是认为其停止,我们知道float是不能用等号判断的
bool CheckOneBallMotionless(GameObject oneBall) //物体消失或速度过小都算停止
{
if (oneBall.activeSelf == true) {
Rigidbody oneRigidbody = oneBall.GetComponent<Rigidbody> ();
if (oneRigidbody.velocity.magnitude < 0.0001 && oneRigidbody.angularVelocity.magnitude < 0.0001)
return true;
else
return false;
} else
return true;
}
}
0 0
- 第一个工程3-代码解释二 ,检查球的的静止和一杆的结束
- 第一个工程3-代码解释二
- 第一个工程3-代码解释一
- 研一第一个学期的结束
- 你的第一个iOS应用(六) 排除错误和检查代码
- SpringBoot学习(一) — 我的第一个SpringBoot工程
- 进程的静止和活动状态
- Django的安装和第一个工程的建立
- Django的安装和第一个工程的建立
- 我的第一个工程-一个台球游戏3-介绍篇一:场景模型的搭建
- 我的第一个十万行代码&Mac命令行检查代码行数
- Hibernate的基本架构和第一个简单工程(2)
- 二、我学习的第一个uiautomator从创建到运行结束
- Java 第一个程序的解释
- OC第一个程序的解释
- OC第一个程序的解释
- 我做的第一个工程
- 搭建Django后的第一个工程
- yii框架原始删除
- 2016 北邮暑期训练3-F题( POJ2342 Anniversary party)树状DP
- RPG游戏弹出框方法的封装
- 说说.NET中被我忽视的方法
- 【杭电】[5747]Aaronson
- 第一个工程3-代码解释二 ,检查球的的静止和一杆的结束
- C++ 指针
- POJ 1328 Radar Installation(贪心)
- CentOS的KVM实践(虚拟机创建、网桥配置、Spice)
- NSArray类的分析
- 【杭电】[5748]Bellovin
- Intellij打包Maven项目中那些七七八八
- PullToRefresh下拉刷新使用详解
- C++中类的静态成员