Unity3D入门Demo-Cube移动-触发球体-切换场景

  • 新建Unity3D项目--选择3D类型
    • 编写场景切换脚本ChangeScenes
    • 添加场景切换脚本到游戏物体并保存Menu场景
    • 新建Game游戏主场景,并添加方块和两个球体
    • 编写Cube移动脚本MoveCube
    • 编写Cube触发球体脚本TriggerEnter
    • 创建返回按钮并配置逻辑,保存Game场景
    • 创建Win场景和Lose场景
    • 将场景添加到BuildSettings里面
    • 测试运行

新建Unity3D项目–选择3D类型

在 Hierarchy面板下,单击鼠标右键,选择 UI–>Button

创建一个按钮,会自动创建Canvas

调整Button的位置到屏幕正中间,修改Text文字为 “开始游戏”

同样的操作方法,在 Hierarchy 面板下 右键Create Empty ,创建空的GameObject ,修改名称为 ChangeScenes。
如下图

编写场景切换脚本ChangeScenes

在Project面板 Assets目录下右键 新建文件夹,BasicCubeGame,然后再其下面再新建两个文件夹分别命名为Scenes和Scripts.
在Scripts文件夹下右键选择新建一个脚本,选择Create–>C# Script
修改名称为ChangeScenes.cs
双击打开脚本,VS2017将会启动,需要等待一段时间
编写以下脚本


using UnityEngine;
using UnityEngine.SceneManagement;
public class ChangeScenes : MonoBehaviour {//需要切换的场景英文名称public string sceneName;public void GoToNextScene(){//切换场景的方法SceneManager.LoadScene(sceneName);}}

代码很简单,就是一个场景切换的功能,由外部传入需要切换的场景名称:

添加场景切换脚本到游戏物体并保存Menu场景

返回Unity3D编辑器界面,将在Project面板刚才写好的ChangeScenes文件,按住不动拖放到Hierarchy 面板下的ChangeScenes游戏物体上,如图

如果拖放成功,点击Hierarchy 面板下ChangeScenes游戏 物体,可以看到如下图

将SceneName变量名称修改为Game

保存当前场景,选择编辑器左上角的File–>SaveScene 选择保存到,刚刚新建的BasicCubeGame–>Scenes目录下,,命名为Menu

新建Game游戏主场景,并添加方块和两个球体

选择编辑器左上角的File–>New Scene 新建一个场景
在Hierarchy 面板下,右键新建一个Cube ,具体操作右键选择3D Object --> Cube
同样的方法再新建两个球体,具体操作右键选择3D Object --> Sphere 连续操作两次
选中Cube,将其坐标设置为Transform–>Position设置为 0,0,0
选中Cube,添加刚体组件,操作方法如图(先要选中Cube)

修改Rigidbody组件,勾选IsKinematic
修改BoxCollider组件,勾选IsTrigger
如下图


将两个球体的名称分别修改为SphereLose和SphereWin
分别设置SphereLose的坐标Transform–>Position设置为 -4,2,0
设置SphereWin的坐标为Transform–>Position设置为 2,5,0
设置SphereWin的坐标为Transform–>Scale设置为 2,2,2 (即将其大小放大一倍)

修改摄像机Main Camera的坐标为Transform–>Position设置为 0,3,-10
将摄像机的Clear Flags参数修改为 Solid Color ,如下图(截图不完整,摄像机的Z坐标为-10 ,不是-1)

在 Hierarchy 面板下 右键Create Empty ,创建空的GameObject ,修改名称为 ChangeScenes,同样的方式将ChangeScenes.cs脚本拖放到 Hierarchy 面板的ChangeScenes游戏物体上

编写Cube移动脚本MoveCube

在Scripts文件夹下右键选择新建一个脚本,选择Create–>C# Script
修改名称为MoveCube.cs
双击打开脚本,VS2017将会启动,需要等待一段时间
编写以下脚本


using UnityEngine;public class MoveCube : MonoBehaviour {//移动速度public float speed;void Update () {Move();PosCheck();}//移动代码void Move(){if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)) //上移{transform.Translate(Vector3.up * speed * Time.deltaTime);}if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)) //下移{transform.Translate(Vector3.down * speed * Time.deltaTime);}if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) //左移{transform.Translate(Vector3.left * speed * Time.deltaTime);}if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) //右移{transform.Translate(Vector3.right * speed * Time.deltaTime);}}//防止移动出了屏幕之外void PosCheck(){float xpos = transform.position.x;float ypos = transform.position.y;if(xpos >4 || xpos < -4  || ypos >6|| ypos < -6){transform.position = new Vector3(0, 0, 0);}}}

将在Project面板刚才写好的MoveCube文件,按住不动拖放到Hierarchy 面板下的Cube游戏物体上,随后选中Cube文件,修改Speed为3

编写Cube触发球体脚本TriggerEnter

在Scripts文件夹下右键选择新建一个脚本,选择Create–>C# Script
修改名称为TriggerEnter.cs
双击打开脚本,VS2017将会启动,需要等待一段时间
编写以下脚本


using UnityEngine;
using UnityEngine.SceneManagement;
public class TriggerEnter : MonoBehaviour {void OnTriggerEnter(Collider collider){Debug.Log("Enter" + collider.gameObject.name);string gameobj_name = collider.gameObject.name;if( gameobj_name == "SphereWin"){SceneManager.LoadScene("Win");}if (gameobj_name == "SphereLose"){SceneManager.LoadScene("Lose");}}}

将在Project面板刚才写好的TriggerEnter文件,按住不动拖放到Hierarchy 面板下的Cube游戏物体上

创建返回按钮并配置逻辑,保存Game场景

在 Hierarchy面板下,单击鼠标右键,选择 UI–>Button
修改Button按钮的位置到屏幕上面,中间位置,调整大小
修改Text文字内容为“返回主菜单”
选中Button,选择右侧Inspector面板下面,OnClick下面的加号,将场景中的ChangeScenes拖放到RuntimeOnly下面的框中,在右侧选择GoToNextScene方法,操作方法如下图

在 Hierarchy面板下,选中ChangeScenes,在右侧Inspector面板,SceneName变量处填写Menu,如下图

保存场景,命名为Game

创建Win场景和Lose场景

新建一个场景,创建一个Button和Text,
修改Text文字为“恭喜你赢了”,
修改Buttion下面Text文字为“返回主菜单”

同样的方法,在 Hierarchy 面板下 右键Create Empty ,创建空的GameObject ,修改名称为 ChangeScenes,同样的方式将ChangeScenes.cs脚本拖放到 Hierarchy 面板的ChangeScenes游戏物体上,填写SceneName变量处填写Menu

同上面的方法,添加Button按钮的点击触发

保存场景,命名为Win


同样的方式,创建Lose场景
新建一个场景,创建一个Button和Text,
修改Text文字为“你输了请重新来过”,
修改Buttion下面Text文字为“返回主菜单”
同样的方法,在 Hierarchy 面板下 右键Create Empty ,创建空的GameObject ,修改名称为 ChangeScenes,同样的方式将ChangeScenes.cs脚本拖放到 Hierarchy 面板的ChangeScenes游戏物体上,填写SceneName变量处填写Menu

同上面的方法,添加Button按钮的点击触发

保存场景,命名为Lose

将场景添加到BuildSettings里面


选中4个场景,或者一个一个选择拖放,都拖放到BuildSettings里面

测试运行

游戏效果

Unity3D入门Demo-Cube移动-触发球体-切换场景相关推荐

  1. Unity3D入门(八):物理组件之刚体与碰撞体

    Unity3D入门(八):物理组件之刚体与碰撞体 准备工作 物理组件之刚体 刚体组件简介 使用刚体移动物体 遇到的问题 物理组件之碰撞体 碰撞体简介 碰撞体种类 Box Collider Sphere ...

  2. [Unity3D入门]分享一个自制的入门级游戏项目坦克狙击手

    [Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://ww ...

  3. [Unity3D入门]入门级游戏项目坦克狙击手更新

    [Unity3D入门]入门级游戏项目"坦克狙击手"更新 在上一篇中我分享了一个尚未完全写好的入门级unity3d项目"坦克狙击手". 本文介绍最新版的" ...

  4. Unity3D入门 第陆章: 贴两个材质玩玩

    在这章里,我们简单的学习一下如何给cube贴图. 效果是这样 首先 我们搭建如下场景:放两个cube,加一个点光源,为了把cube照亮.调整一下摄像机,光源和cube的位置角度. 接着,我们导两张贴图 ...

  5. Dubbo入门Demo

    2019独角兽企业重金招聘Python工程师标准>>> 1.Dubbo简单介绍 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方 ...

  6. Unity3D 入门 游戏开发 Unity3D portal game development

    Unity3D 入门 游戏开发 Unity3D portal game development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...

  7. rabbitmq 入门demo

    rabbitmq 入门demo http://www.cnblogs.com/jimmy-muyuan/p/5428715.html http://www.cnblogs.com/shanyou/p/ ...

  8. Unity3D入门其实很简单

    在上次发布拙作后,有不少童鞋询问本人如何学习Unity3D.本人自知作为一名刚入门的菜鸟,实在没有资格谈论这么高大上的话题,生怕误导了各位.不过思来想去,决定还是写一些自己的经验,如果能给想要入门U3 ...

  9. dubbo web工程示例_分布式开发-Zooker+dubbo入门-Demo

    作者:知了堂-刘阳 1.什么是SOA架构 SOA 是Service-Oriented Architecture的首字母简称,它是一个面向服务的架构模式(俗称:分布式:面服务的分布式) 为什么互联网项目 ...

最新文章

  1. ubuntu18.04下双机驱动调试
  2. 基本lnmp平台的搭建(源码编译)
  3. 从零开始搭建创业公司后台技术栈!
  4. 挂载ntfs_运维丨linux如何挂载光盘
  5. C#开发ActiveX网页截图控件
  6. [软件更新]Adobe Photoshop Elements 8.0.0
  7. Anaconda:成功解决Anaconda下载时速度超慢(conda下载慢)的几种方法图文教程
  8. 第一次ScrumMeeting博客:团队任务分解
  9. mysql数据库(1):连接与断开服务器
  10. EmWin 接触---基础函数
  11. php 科学计数 位数,PHP采用超长位数字运算防止数字以科学计数法显示的实例
  12. Android 高德地图 Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lan
  13. 多分类任务中每个类Acc、Specificity、Sensitivity、Precision的计算
  14. 详解从p12证书提取RSA公私钥和序列号(小白向)
  15. Iphone版同步推闪退问题
  16. iphone 自动响应旋转屏幕
  17. 待定系数法求不定积分中的待定系数法的拆分总结
  18. 磁盘清理软件 智能清理Mac
  19. linux文件系统层级结构标准
  20. 前端防错以及好用小tips指南总结

热门文章

  1. 计算机毕业设计 SSM网上外卖订餐系统 外卖配送管理系统 外卖快餐配送系统Java
  2. Mountain Duck for Mac(云存储空间管理软件) v2.6.7永久破解版
  3. 体温单开发_产品开发可以从我们的体温调节系统中学到什么?
  4. 简书APP连个验证短信都发不了?
  5. Smartbi电子表格设计企业报表(一)——中国式报表(分组报表)
  6. 操作系统:Win11首个预览版来了!附升级方法
  7. 支付宝小程序使用AES解密
  8. 专业PPT制作 驼峰设计
  9. 基本中型网络的仿真(RYU+Mininet的SDN架构)-以校园为例
  10. 【分享贴】硬件电路设计思路