文章目录
前言
通过代码来生成预制体,项目是
2D
的类型
Unity版本:2018.4.29
其他介绍
上一篇笔记
下一篇笔记
一、C#代码
[1]. 创建
在
unity
项目创建完毕后,先创建一个脚本,命名随意
默认的代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class create : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
[2]. 设置公有变量
然后在类的开头部分先创建一个
GameObject
类型的变量,这类型是unity
所有实体的基类。
在class
内部且不为方法内部定义的public
变量为公有变量
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class create : MonoBehaviour
{
public GameObject prefab;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
[3]. 实例化
使用函数
Instantiate()
,传入一个GameObject
变量
写入Start()
方法,当游戏开始的时候将会执行实例化的代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class create : MonoBehaviour
{
public GameObject prefab;//公有变量
// Start is called before the first frame update
void Start()
{
Instantiate(prefab);
}
// Update is called once per frame
void Update()
{
}
}
[4]. 设置位置
如果你需要设置生成的预制体位置时,就需要在实例化函数中传入第二个参数
transform
对其属性transform.position
赋值一个向量Vector2(x坐标,y坐标)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class create : MonoBehaviour
{
public GameObject prefab;//公有变量
// Start is called before the first frame update
void Start()
{
//Instantiate(prefab,transform).transform.position = new Vector2(2,4);//方式一
//方式二
GameObject obj = Instantiate(prefab,transform);//先实例化成一个对象obj
obj.transform.position = new Vector2(2,4);//再修改位置
//方式三
//Instantiate(prefab,transform.position,transform.rotation);//直接在脚本挂载的物体位置实例化
}
// Update is called once per frame
void Update()
{
}
}
[5]. 绑定脚本
c#
脚本不能单独存在,需要绑定到一个物体上
下方的
Prefab
就是我们之前在代码中定义的公有变量,只不过首字母变成了大写。
二、预制体
[1]. 导入图片
[2]. 生成Object
在
Hierarchy
窗口中右键,创建一个Object
[3]. 绑定Sprite
选中刚刚创建的
Object
在右侧的
Inspector
界面中,设置对应的Sprite
你可以拖动图片到这个
Sprite
属性,或者是点击右侧的小齿轮设置
[4]. 生成Prefab
将
Object
拖动到文件夹中,就会直接转换成Prefab
一个预制体就建好了
原先场景的
Object
类型会变化为Prefab
类型,场景的预制体可以删除掉。
[5]. 绑定预制体
第一步完成的
Object
已绑定了脚本,但是没有绑定具体的预制体
同样的,将预制体拖动到
Prefab
中即可
绑定完成就能播放查看代码是否成功执行。
注:Prefab是在代码中自己定义的公有GameObject类型变量