首页 > 其他分享 >本科课程【虚拟现实引擎Unity3D】实验1 - ChaosBall(物理引擎应用)

本科课程【虚拟现实引擎Unity3D】实验1 - ChaosBall(物理引擎应用)

时间:2022-12-06 10:33:06浏览次数:39  
标签:count text 本科课程 transform 50 引擎 new position 虚拟现实


大家好,我是【1+1=王】, 热爱java的计算机(人工智能)渣硕研究生在读。
如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!
Good better best, never let it rest, until good is better, and better best.

近期会把自己本科阶段的一些课程设计、实验报告等分享出来,供大家参考,希望对大家有帮助。

一、 实验目的

  1. 掌握钢体的应用及相关控制方法、事件编程。

二、 实验内容

1. 实验任务

自己搭建一个类似台球桌面的场景,四个角设定为不同的颜色,场景中有四个和角颜色对应的大球和若干个小的干扰球(颜色可相同或不同),场景中还有一个可以四处移动并转运的挡板,可以用其改变球的运动方向。游戏开始后,各种球以不同的速度和方向移动并和台球桌边、其它球及挡板相碰,在球碰撞到同颜色的角时停下不再移动。当四个大球都停在角上时,显示游戏结束提示和完成时间并可结束或重新开始游戏。可根据需要增加其他内容。

2. 程序设计

1) 数据输入
均为初始化方式输入

2) 数据存储(输入数据在内存中的存储)
Plane存储地面;
Cube1-4存储场景的四边框
Sphere1-4存储运动的小球
Cylinder1-4存储四个角的圆柱体
3) 数据处理
(1)
新建一个Plane(10x10)地面,四个Cube(1x1x10),四个Spyder(0.5x0.5x0.5),四个cylinde(1x1x1);
建立五个材质球分别赋给不同的对象;
调整不同物体至对应位置

(2)

给所有Cube,Spyder,cylinde添加刚体组件。

禁用cude的重力属性,再freeze冻结所有cude的x,y,z坐标,使它们在运动过程中保持静止。

新建一个Physic Material,初始化所有阻力系数都为0

本科课程【虚拟现实引擎Unity3D】实验1 - ChaosBall(物理引擎应用)_unity


将新建的physic Material 拖动赋值给所有物体,使所有物体的运动阻力位0;4) 数据输出

本科课程【虚拟现实引擎Unity3D】实验1 - ChaosBall(物理引擎应用)_unity_02

三、 实验环境

  1. 操作系统:WINDOWS 10
  2. 开发工具:Unity3D
  3. 实验设备:PC

源代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Controller : MonoBehaviour {

public Text text;
private int count = 0;
private bool isClick = false;


// Use this for initialization
void Start () {
text.text = "white";
text.color = Color.white;

}

// Update is called once per frame
void Update () {

System.Threading.Thread.Sleep(2000);
if (isClick == false)
{
shunxuanzhuan();
}
else
{
nixuanzhuan();
}


}

void shunxuanzhuan()
{
count++;
if(count !=0&&count%4 == 0)
{
text.text = "white";
text.color = Color.white;
text.transform.position = new Vector2(text.transform.position.x, text.transform.position.y +50);
}
if (count % 4 == 1)
{
text.text = "green";
text.color = Color.green;
text.transform.position = new Vector2(text.transform.position.x+50, text.transform.position.y);
}
if (count % 4 == 2)
{
text.text = "yellow";
text.color = Color.yellow;
text.transform.position = new Vector2(text.transform.position.x, text.transform.position.y-50);
}
if (count % 4 == 3)
{
text.text = "red";
text.color = Color.red;
text.transform.position = new Vector2(text.transform.position.x - 50, text.transform.position.y);
}

}
void nixuanzhuan()
{
count--;
if (count != 0 && count % 4 == 0)
{
text.text = "white";
text.color = Color.white;
text.transform.position = new Vector2(text.transform.position.x - 50, text.transform.position.y);
}
if (count % 4 == 1)
{
text.text = "green";
text.color = Color.green;
text.transform.position = new Vector2(text.transform.position.x, text.transform.position.y-50);
}
if (count % 4 == 2)
{
text.text = "yellow";
text.color = Color.yellow;
text.transform.position = new Vector2(text.transform.position.x + 50, text.transform.position.y);
}
if (count % 4 == 3)
{
text.text = "red";
text.color = Color.red;
text.transform.position = new Vector2(text.transform.position.x, text.transform.position.y + 50);
}

}


private void OnGUI()
{
if(GUI.Button(new Rect(0, 0, 50, 30), "Button"))
{
isClick = !isClick;
}
}

}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class sport : MonoBehaviour {


// Use this for initialization
void Start () {
GetComponent<Rigidbody>().AddForce(400, 0, 333);
}

// Update is called once per frame
void Update () {

}
}

标签:count,text,本科课程,transform,50,引擎,new,position,虚拟现实
From: https://blog.51cto.com/u_15901218/5914789

相关文章

  • 本科课程【计算机网络】实验4 - VLAN间路由、单臂路由实验
    大家好,我是【1+1=王】,热爱java的计算机(人工智能)渣硕研究生在读。如果你也对java、人工智能等技术感兴趣,欢迎关注,抱团交流进大厂!!!Goodbetterbest,neverletitrest,un......
  • 精通正则表达式- 引擎
    1.引擎的类型传统型NFAPOSIXNFADFA(不支持忽略优先量词,捕获组和回朔)Javascript测试代码:首先测试是否是传统型NFA/**如果匹配结果是nfa则为传统型NFA**/c......
  • 火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群随着国内游戏用户数量趋于饱和,中国游戏产业也从高速成长期逐渐转型,市场成熟度提升,竞争......
  • 火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?
    随着国内游戏用户数量趋于饱和,中国游戏产业也从高速成长期逐渐转型,市场成熟度提升,竞争趋于精细化。随着游戏出海以及私域流量运营的挑战,游戏企业对数据分析的使用需求和依......
  • CentOS7.0下完美部署Solr 搜索引擎
    一、环境准备:系统环境:CentOS-7.0.1406       tomcat-7.0.29       jdk-7u9       solr-4.7.0首先将软件包上传到/tmp目录下1、 jdk安装[ro......
  • MySQL存储引擎
    1.MyISAM底层存储(非聚集索引方式)与InnoDB底层存储(聚集索引方式)1.1MyISAM底层存储(非聚集索引方式)Myisam创建表后生成的文件有三个:frm:创建表的语句MYD:表里面的数据文......
  • JDK中内嵌JS引擎介绍及使用
    原文:JDK中内嵌JS引擎介绍及使用-Stars-One的杂货小窝最近研究阅读这个APP,其主要功能就是通过一个个书源,从而实现移动端阅读的体验比如说某些在线小说阅读网站,会加......
  • 10 虚拟机字节码执行引擎_方法调用
    目录1关于方法调用2方法解析3方法分派3.1静态分派3.1.1静态分派概述3.1.2方法重载分析3.1.3静态类型和动态类型3.2动态分派3.2.1invokevirtual指令详解3.2.2动态......
  • MySQL存储引擎
    一、mysql存储引擎概述1.1存储引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提......
  • 这就是搜索引擎(7) 云计算之MapReduce
    0背景Map/Reduce是Google针对海量信息处理提出的非常著名的云计算模型,包括Hadoop等众多开源系统都采纳了这一方法,成为了主流的云计算模型。Map/Reduce是一个计算模型的......