【Unity 3D】学习笔记四十三:布料

布料


布料是特殊的组件,它可以变化成任意形状,比如说:随风飘的旗子,窗帘等

创建布料的方法有两种:创建布料对象,在游戏对象中添加布料组件。前者通过hierarchy视图中选择create——cloth即可,创建后,系统会自动将互动布料组件(interactive clothe)与布料渲染组件(cloth renderer)添加值该对象中。后者是在导航菜单中选component——physics——interactive cloth菜单项即可。

交互布料组件是由网格组成的布料,只要用于布料的逻辑判断,应用于摩擦,密度,气压等影响布料的效果,影响到布料的具体物理数值之间的判断。

布料渲染是给布料绘制一张贴图使指更加美观。

布料皮肤(skinned cloth)是用来模拟人物模型皮肤的布料,比如说衣服,裤子等。这些布料会根据角色骨骼动画的运动而发生改变。

【Unity 3D】学习笔记四十三:布料_第1张图片

bending stiffness:硬度,取值0-1。

stretching stiffness:韧度,取值0-1。

damping:阻力,取值0-1。

thickness:厚度,直接影响布料的质量大小。

user gravity:只用重力。

self collision:自身碰撞。

external acceleration:作用于布料的一个外力,影响布料的默认行为。

random acceleration:随机外力。

mesh:网格面,决定布料的形状。

friction:摩擦力,取值0-1.

density:密度,数值越大布料的质量越高。

pressure:气压。

collision response:与其他模型碰撞后的反馈。

attachment tear factor:附带撕破系数。

attachment response:附带反馈。

tear factor:撕破系数,值越大越不容易撕破。

attached colliders:附带碰撞器。


本文将总结回顾一个布料实例,点击左侧的按钮可以控制平面对象的移动方向,由于会和正方体发生碰撞,所以布料会变形。

using UnityEngine;
using System.Collections;

public class Script_06_12 : MonoBehaviour 
{

	//布料对象
	Cloth cloth = null;
	
	void Start()
	{
		//获取布料对象
		cloth = (Cloth)GetComponent();
	}
	
	void OnGUI()
	{
		//移动布料
		if(GUILayout.RepeatButton("向上"))
		{
			cloth.externalAcceleration =  new Vector3(0,1,0);
		}
		if(GUILayout.RepeatButton("向下"))
		{
			cloth.externalAcceleration =  new Vector3(0,-1,0);
	
		}
		if(GUILayout.RepeatButton("向左"))
		{
			cloth.externalAcceleration =  new Vector3(1,0,0);
		}
		if(GUILayout.RepeatButton("向右"))
		{
			cloth.externalAcceleration =  new Vector3(-1,0,0);
	
		}
	}

}

运行:

【Unity 3D】学习笔记四十三:布料_第2张图片

点击按钮后:

【Unity 3D】学习笔记四十三:布料_第3张图片

你可能感兴趣的:(Unity,unity,布料)