欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity(预设体)

程序员文章站 2022-06-11 14:42:05
...

#一、描述
预设体就是一个模版,比如可以先设计一个怪物,他皮肤,有技能,有属性,当你之后需要进行生成多个怪物的时候,就可以运用这个预设体进行生成,他们的属性,脚本皮肤都自带着生成出来了

#二、使用说明

生成预设体,比如你创建了一个cube,就可以直接把cube拉到project面板当中,他就会自动成为一个预设体,怎么判断是否是预设体,你看他的图标如果是一个蓝色的方块的话,他就是一个预设体

怎么使用预设体?直接把预设体拉入到界面上去,他就会自动生成了。

当预设体的颜色或者属性更改时,所有根据预设体生成出来的游戏对象,他们的属性都会跟随着预设体进行变化

随便选择一个预设体,他的属性面板的Prefab有3个选项卡可以选择。

1 Select就是选中生成你这个游戏对象的那个预设体,在project面板显示

2 Revert就是当你把此游戏对象的属性自行更改后,会恢复到预设体默认的属性

3 Apply是让此对象的属性作为预设体的基础默认属性

#三、根据预设体动态生成游戏对象

// Update is called once per frame
	void Update () {
		if (Input.GetKeyDown (KeyCode.P)) {
			
			//生成一个随机的Vector向量
			Vector3 vector3 = new Vector3 ();
			vector3.y = 0.5f;
			vector3.x = Random.Range (-5,5); 
			vector3.z = Random.Range (-5, 5);

			//生成一个随机的旋转角度
			float angle = Random.Range (0, 360);

			//运用Instantiate方法动态生成一个游戏对象,返回值为生成后的游戏对象
			//1 需要生成的游戏预设体   2 生成后的游戏对象位置坐标   3 是否需要进行旋转或者其他操作
			GameObject game = Instantiate (gameobject,vector3,Quaternion.AngleAxis(angle,Vector3.left)) as GameObject;

			//根据返回的生成后的游戏对象,设置他的高度缩放为随机1 - 5 
			Transform transform =  game.transform;
			transform.localScale = new Vector3 (transform.localScale.x, Random.Range (1f, 5f), transform.localScale.z);

		}

	}
复制代码

转载于:https://juejin.im/post/5b3ac532e51d45559f2a2224