unity入门必备的案例2.0

简介: unity入门必备的案例你还不知道?

👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 unity实战入门

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
栓Q

目录

那么在这里小编其他的话就不说了直接步入主题:

本次入门学习分为以下几个步骤:

1.五大主要面板

2.基本操作和组件介绍

3.控制3Dobjectk物体运动

4.相机的实时跟随

5.预制体的设置(标签,旋转效果)

6.碰撞器,触发器及其脚本

7.UI幕布
一.五大主要面板
1.Project面板(工程面板)---里面主要包含插件

以上的文件包含物体的材质,脚本,插件等有关场景中的一切

2.Hierarchy面板---显示当前场景有哪些事物。

初始场景中只有:MainCamra相机和DirectionalLIght灯光

3.Inspector面板(检视面板)-----查看物体有哪些组件组成的

4.Scene面板(场景面板)

5.game面板(游戏面板)。=

二.基本操作和组件介绍
1.基本操作

如上图所示 (1)拖拽 (2)移动 (3)旋转 (4)大小(5)2d大小(6)旋转+移动+大小

分别对应快捷键 Q,W,E,R,T,Y

2.基本组件介绍
首先在Hierarchy面板中右键选中- 3Dobject创建一个3d模型

1.物体的基本组件(在Inspector面板中):
(1)Transform -----位置和大小

(2)Mesh Renderer--渲染控制显示

(3)Mesh collider---碰撞器

(4)Mesh Filter-----网格

三.控制3Dobjectk物体运动
首先创建一个地面在Hierarchy面板中右键-3dobject-pian创建一个地面,然后右键-3dobject-cube创建一个正方体。

1.添加刚体
在inspecter面板中点击 add component 在搜索面板中输入Rigidbody(刚体),代表此时物体有了物理信息,重量质量等等,此时你若将正方体上移脱离地面然后按下如下图所示的执行按钮,你会发现物体做自由落体运动并且停止到地面上

2.控物体运动
(1).操作介绍
那么这个时候我们得写脚本了(c#代码),首先点击Add component 然后移到最下方点击 New script(新脚本),输入自定义脚本名称,此时我们可以输为sport,按下creat and add ,你会发现在,project中会出现如下:

点击 ,然后他会打开VS(前提自己安装vS2019社区版--个人推荐 ),以下是自动出现的基本代码模板,start的方法只运行一次,但是Update是大概每秒60次,也就是一直在运行

(2) 脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class sport : MonoBehaviour
{
public Rigidbody cube;//创建刚体对象
// Start is called before the first frame update
void Start()
{
cube = GetComponent();//Cube得到刚体组件(方法)
}

// Update is called once per frame
void Update()
{
    float a, b, c;
    //内置方法可在Edit- projectsettings -Axis中查看
    a = Input.GetAxis("Horizontal");//按ws或者上下方向可以向前前后移动
    b = Input.GetAxis("Vertical");  //按ad或者左右方向可以向左向右移动
    c = Input.GetAxisRaw("Jump");   //按一直空格可以飞行跳跃
    cube.AddForce(new Vector3(a, c, b) *10 ); 
    // Addforce也就是给cube添加一个力 Vector是它的三维方向轴
    //所以按wsad和空格 可以对物体在不同的方向产生不同的力从而达到运动的作用
    //乘上10是为了加快它的速度


}

}
然后Heritchy按ctrl+s 保存再切换到unity,点击Hierarchy面板的cube再将在Inspecter面板中Rigidbody拖到Script中(赋予对象),如下图有有绿色的刚体物件显示,然后点击运行,就可以实现物体基本的运动了

四.相机的实时跟随
若想实现实时相机画面跟随物体运动那么见如下步骤:

1.基本操作介绍
首先点击Hierarchy面板中的Main camera,再看到Inspector面板点击add Component ,按照上文介绍过的操作,创建一个脚本自定义命名(followsight),生成后打开编辑,代码如下。

2.脚本代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class followsight : MonoBehaviour
{
public Transform cube; //创建跟随对象
private Vector3 offset; //偏移视角
// Start is called before the first frame update
void Start()
{
offset = transform.position - cube.position;
//记录初始相机到物体的三维差
}

// Update is called once per frame
void Update()
{
    transform.position = offset + cube.position;
    //此时相机的位置就一直跟着cube的位置变化而变化
    //那么此时物体和相机就成了形影不离的整体
}

}
然后按ctrl+s 保存再切换到unity,点击Hierarchy面板的Main camera再将Hierarchy面板中的cube物体拖到在Inspecter面板中Script中(赋予对象),如下图。这样就可以实现相机的实时跟随了。

五.预制体的设置
1.介绍:
什么是预制体?预制体你可以理解为NPC,野怪,地铁跑酷里面的金币,那么接下来,小编将创建是Tag(标签)为Food的预制体,将实现实现cube触碰到它后食物消失,形成,吃掉食物的效果

2.创建预制体(添加标签相当于将其分类,方便系统识别,和自身梳理)
首先在Project面板创建自定义命名prefabs(预制体)文件夹,后在任意在hierarchy面板创建一个3Dobject物体,在Inspector面板点击Tag将untagged换成add Tag,然后点击+号,添加自定义tag(标签),此时我们添加一个自定义为food的标签,退出后再选择。

之后我们将位于Hierarchy面板的food对象拖拽至prefabs的文件夹中,此时物体的图标会变蓝,之后我们可以在它Inspectors面板的transform组件中改变它的大小或位置,(当然按R也可以)然后按住ctrl+d进行预制体复制

此时为了方便梳理,我们可以创建一个空物体(右键creat +creatempty),然后按住shift进行多项选择,将其一起拖拽进空物件中,并可以将,空物件命名为env(环境),这样预制体的基本创建就完成了

六. 碰撞器,触发器及其脚本
1..让预制体运动(旋转)
那么此时我们的创建一个脚本,脚本代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class rotate : MonoBehaviour
{
public float speed=5;
// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame
void Update()
{
    transform.Rotate(Vector3.forward * speed);
    //rotate是旋转, 那么forward是向前当然可以选其他方向,然后可以看到我定义了一个speed,
    //那么这个speed也就是速度的意思可以在Inspector面板中的script组件中修改speed的值
}

}

为了方便观看我们给物体都添加个色彩,在Project面板中创建一个存放材质的自定义文件夹,然后创建Material(右键-creat-Material)材质,然后在右边Inspector面板调色后推拽到物体身上,如下图:

2.碰撞器,触发器《主体碰到预制体消失(实现吃食物的代码)》
1.首先我们得在Inspector面板看到box collider碰撞器组件,然后勾选is tigger 让其从碰撞器变成触发器(当然触发器也是碰撞器得一种),勾选注意不要给prefabs预制体添加刚体组件,不然它会掉下去,因为此时它没有了碰撞效果,任何物体经过它后会穿透

2.添加触发脚本

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

public class chufa : MonoBehaviour
{

// Start is called before the first frame update
void Start()
{

}

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

}
// private void OnCollisionEnter(Collision collision)//这个是碰撞器方法,enter意味着发生碰撞接触时会发生什么
//private void OnCollisionEnter(Collision collision)//这个是停留时会发生什么
//private void OnCollisionExit(Collision collision)//那么这个就是离开时会发生什么
//此时我们是接触器如下
private void OnTriggerEnter(Collider other)//接触时
{
    if(other.gameObject .tag =="food")//当接触的物体它的trandform组件中的tag标签是food时执行
    { 
        Destroy(other.gameObject );  //此时让食物物体对象消失
    }
}

}
7.UI幕布
不管添加要显示在幕布上的什么组件。添加时幕布只有一个

1.幕布中添加文字
右键+UI+lagacy+Txet,则会出现以下:物体中间出现文字,当然幕布是透明的,

如果此时你想更改文字的位置,大小颜色的话 ,看到inspector面板的txet框框,在character中可以改变字体字样,大小,那么在Rect Transform组件中点击center选择位置,则可以实时固定字体的位置,意思是不管画面怎么移动,字体在屏幕上的位置不会改变。

此时小编将其放到了右下角,并且修改为hello unity、

2.添加照片
首先将你的照片电脑文件夹中拖拽到project面板中,然后单击它后看到Inspector面板,将Texture Type改成Sprite(2d and ui),之后点击屏幕,他会弹出一个提示框,点击框中的Apply,

然后在Hierarchy面板中在canvas对象位置右键+UI+image,创建一个幕布图片组件,然后看到右边Inspector面板中的image组件,将Souce image 从None 换成上面已经弄好的ui材料,

此时你即可看到屏幕中出现的画面,那么跟文字一样,将其改变大小,位置,实时固定

3.添加视频
首先你得在Project面板创建一个渲染材质右键+creat+Reader texture,将其移到在幕布中新创建得位于Inspector面板的Raw iamge 的组件中,然后再按 Add component添加 Vidio player组件,然后点击source选择视频文件。

4.添加激活物体脚本
作用在当你吃完食物之后,要显示胜利的画面,那么上面的UIxai显示就是为此,那么此时你的先将其隐藏,然后通过脚本代码,吃完全部的食物后激活。

脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//涉及UI时需要加上这个命名空间
public class chufa : MonoBehaviour
{

// Start is called before the first frame update
public float socrce = 0; //定义一个分数值让他初始值为0 
public GameObject ui; //创建要激活的对象gameobjet类型
void Start()
{

}

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

}
// private void OnCollisionEnter(Collision collision)//这个是碰撞器方法,enter意味着发生碰撞接触时会发生什么
//private void OnCollisionEnter(Collision collision)//这个是停留时会发生什么
//private void OnCollisionExit(Collision collision)//那么这个就是离开时会发生什么
//此时我们是接触器如下
private void OnTriggerEnter(Collider other)//接触时
{
    if (other.gameObject.tag == "food")//当接触的物体它的trandform组件中的tag标签是food时执行
    {
        Destroy(other.gameObject);  //此时让食物物体对象消失
        socrce++; //吃到一个食物得到一分
    }
    if(socrce == 4.0F) //F是float的后缀当吃到四个食物时就激活胜利信息
    {
        ui.SetActive(true);//setActive就是激活true就是实现按钮
    }

}

}
那么这就是本次的全部内容啦,有收获的朋友请点个支持再走吧
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
栓Q

目录
相关文章
|
20天前
|
图形学
【Unity Shader 描边效果_案例分享】
【Unity Shader 描边效果_案例分享】
|
20天前
|
存储 图形学
【Unity Shader 消融效果_案例分享】
【Unity Shader 消融效果_案例分享】
|
20天前
|
图形学
【Unity的HDRP下ShaderGraph实现权重缩放全息投影_案例分享(内附源码)】
【Unity的HDRP下ShaderGraph实现权重缩放全息投影_案例分享(内附源码)】
|
20天前
|
图形学
【Unity URP渲染管线下设置灯光数量上限_灯光不显示问题案例分享】
【Unity URP渲染管线下设置灯光数量上限_灯光不显示问题案例分享】
|
4月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
75 2
|
5月前
|
C# 图形学
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
【Unity 3D】元宇宙案例之虚拟地球信息射线实战(附源码、演示视频和步骤 超详细)
54 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机拆装后零件说明功能案例实战(附源码和演示视频 超详细)
41 0
|
5月前
|
vr&ar C# 图形学
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
【Unity 3D】VR飞机动态拆装及引擎开关控制案例(附源码和演示视频 超详细)
44 0
|
5月前
|
vr&ar 图形学
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)
57 0
|
5月前
|
C# 图形学
Unity的几个入门小常识
Unity的几个入门小常识