👨💻个人主页:@元宇宙-秩沅
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