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

来源:互联网 发布:合成声音的软件 编辑:程序博客网 时间:2024/04/28 02:17

布料


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

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

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

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

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


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<InteractiveCloth>();}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);}}}

运行:


点击按钮后:


0 0
原创粉丝点击