蓝鸥Unity开发教程之课时12 预设体
2016-09-13 11:41
323 查看
蓝鸥Unity开发教程之课时12 预设体
预设体
预设体能够使游戏对象和资源重复使用
相同的游戏对象可以使用同一个预设体来创建
对预设体进行修改后,所有游戏对象都会相应改变
![](https://img-blog.csdn.net/20160913114211176?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
把预设体作为的一个模板原型,在使用的过程中,我们可以把预设体拖至场景中来创建一个新的游戏对象,能够让我们的游戏对象和资源能重复利用,并且对于预设体进行修改,可以对当前所以的游戏对象发生一样的修改。
接下来我们在Unity中来演示一下
1、预设体的创建——创建一个Cube——创建一个材质球——然后把Cube的演示改成红色——然后把Cube重命名Player——把Player拖拽到Project中(在此过程中鼠标会有变化)——在Project中就会出现一个Player.prefab(prefab就是预设体的意思)
![](https://img-blog.csdn.net/20160913114251149?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
预设体:可以快速方便的创建类似的对象,我们可以通过修改预设体来修改对象
![](https://img-blog.csdn.net/20160913114303052?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160913114316274?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2、使用脚本动态创建预设体对象——创建一个空对象命名为:GameController——在空对象上挂载一个Test的脚本——打开脚本,我们利用脚本创建预设体。
场景:当我们杀死5个骷髅怪之后,使用预设体创建新的骷髅怪!
![](https://img-blog.csdn.net/20160913114329287?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
}
}
}
![](https://img-blog.csdn.net/20160913114347756?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160913114358180?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
//用预设体创建游戏对象
//Instantiate(playerPrefab);
//用预设体创建随机位置的游戏对象
Vector3 pos = new Vector3 ();
pos.y = 0.5f;
//使用Random.Range()方法来产生随机数
pos.x = Random.Range(-5f,5f);
pos.z = Random.Range (-5f,5f);
//Quaternion.identity 旋转值为0,Quaternion.AngleAxis()旋转不同角度
////随机角度
float angle=Random.Range(0,360);
//Quaternion.AngleAxis()——3个参数
//1——使用哪个预设体创建游戏对象
//2——创建出的游戏对象的初始位置
//3——创建出的游戏对象初始旋转角度
Instantiate (playerPrefab, pos, Quaternion.AngleAxis (angle, Vector3.up));
}
}
}
![](https://img-blog.csdn.net/20160913114418571?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
//用预设体创建游戏对象
//Instantiate(playerPrefab);
//用预设体创建随机位置的游戏对象
Vector3 pos = new Vector3 ();
pos.y = 0.5f;
//使用Random.Range()方法来产生随机数
pos.x = Random.Range(-5f,5f);
pos.z = Random.Range (-5f,5f);
//Quaternion.identity 旋转值为0,Quaternion.AngleAxis()旋转不同角度
////随机角度
float angle=Random.Range(0,360);
//Quaternion.AngleAxis()——3个参数
//1——使用哪个预设体创建游戏对象
//2——创建出的游戏对象的初始位置
//3——创建出的游戏对象初始旋转角度
GameObject p= Instantiate (playerPrefab, pos, Quaternion.AngleAxis (angle, Vector3.up)) as GameObject;
//获取组件
// p.GetComponent<> ();
//添加组件
p.AddComponent<CubeController>();
}
}
}
预设体
预设体能够使游戏对象和资源重复使用
相同的游戏对象可以使用同一个预设体来创建
对预设体进行修改后,所有游戏对象都会相应改变
把预设体作为的一个模板原型,在使用的过程中,我们可以把预设体拖至场景中来创建一个新的游戏对象,能够让我们的游戏对象和资源能重复利用,并且对于预设体进行修改,可以对当前所以的游戏对象发生一样的修改。
接下来我们在Unity中来演示一下
1、预设体的创建——创建一个Cube——创建一个材质球——然后把Cube的演示改成红色——然后把Cube重命名Player——把Player拖拽到Project中(在此过程中鼠标会有变化)——在Project中就会出现一个Player.prefab(prefab就是预设体的意思)
预设体:可以快速方便的创建类似的对象,我们可以通过修改预设体来修改对象
2、使用脚本动态创建预设体对象——创建一个空对象命名为:GameController——在空对象上挂载一个Test的脚本——打开脚本,我们利用脚本创建预设体。
场景:当我们杀死5个骷髅怪之后,使用预设体创建新的骷髅怪!
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
}
}
}
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
//用预设体创建游戏对象
//Instantiate(playerPrefab);
//用预设体创建随机位置的游戏对象
Vector3 pos = new Vector3 ();
pos.y = 0.5f;
//使用Random.Range()方法来产生随机数
pos.x = Random.Range(-5f,5f);
pos.z = Random.Range (-5f,5f);
//Quaternion.identity 旋转值为0,Quaternion.AngleAxis()旋转不同角度
////随机角度
float angle=Random.Range(0,360);
//Quaternion.AngleAxis()——3个参数
//1——使用哪个预设体创建游戏对象
//2——创建出的游戏对象的初始位置
//3——创建出的游戏对象初始旋转角度
Instantiate (playerPrefab, pos, Quaternion.AngleAxis (angle, Vector3.up));
}
}
}
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
public GameObject playerPrefab;
void Start () {
}
void Update () {
if(Input.GetKeyDown(KeyCode.P)){
//每当按下P键就会在场景中创建出一个Player游戏对象
//用预设体创建游戏对象
//Instantiate(playerPrefab);
//用预设体创建随机位置的游戏对象
Vector3 pos = new Vector3 ();
pos.y = 0.5f;
//使用Random.Range()方法来产生随机数
pos.x = Random.Range(-5f,5f);
pos.z = Random.Range (-5f,5f);
//Quaternion.identity 旋转值为0,Quaternion.AngleAxis()旋转不同角度
////随机角度
float angle=Random.Range(0,360);
//Quaternion.AngleAxis()——3个参数
//1——使用哪个预设体创建游戏对象
//2——创建出的游戏对象的初始位置
//3——创建出的游戏对象初始旋转角度
GameObject p= Instantiate (playerPrefab, pos, Quaternion.AngleAxis (angle, Vector3.up)) as GameObject;
//获取组件
// p.GetComponent<> ();
//添加组件
p.AddComponent<CubeController>();
}
}
}
相关文章推荐
- 蓝鸥Unity开发教程之课时15 Collider
- 蓝鸥Unity开发教程之课时5 Unity组件开发
- 蓝鸥Unity开发教程之课时9 Vector3
- 蓝鸥Unity开发教程之课时14 刚体
- 蓝鸥Unity开发教程之课时5 Unity组件开发之脚本组件
- 蓝鸥Unity开发教程之课时3 Terrain地形系统
- 【蓝鸥Unity开发基础三】课时12 预设体
- 蓝鸥Unity开发教程之课时1 下载并安装unity
- 蓝鸥Unity开发基础二——课时17 静态类
- iPhone开发视频教程 Objective-C部分 (51课时)
- 蓝鸥Unity开发教程之课时7 Input类
- 蓝鸥Unity开发教程之课时2 游戏对象和基本操作
- 蓝鸥Unity开发教程之课时13 鼠标事件
- 小程序怎么添加模板消息-微信小程序开发-视频教程12
- DuiVision开发教程(12)-任务类和任务队列
- titanium开发教程-02-12回顾周期的创作
- IntelliJ IDEA 12详细开发教程(一)思想的转变与新手入门
- iPhone开发视频教程 Objective-C部分 (51课时)
- 蓝鸥Unity开发基础二——课时25 栈和队列
- 蓝鸥Unity开发教程之课时8 GameObject