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

布料

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

创建布料的方法有两种:创建布料对象,在游戏对象中添加布料组件。前者通过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);

		}
	}

}

运行:

点击按钮后:

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

时间: 2024-10-13 04:55:07

【Unity 3D】学习笔记四十三:布料的相关文章

Unity 3D学习笔记之一 界面介绍

因为学校的课程,本学期对Unity 3D有学习的要求,在博客中记录下自己的Unity学习之路(内容摘录自书本和视频,书本为Unity 4.x从入门到精通) 一.Unity界面介绍 首先进入Unity3D,在菜单栏,File中new project,选择自己的工作路径初始时我们先默认不引入任何的package. 进入Unity的界面中,先对界面进行一下简要的介绍.区域大致依次分为Hierarchy.Scene.Inspector.Project,和上方的菜单栏(Menu bar)和工具栏(Tool

JAVA学习笔记(四十三)- ThreadLocal

死锁 /* * 死锁:多个线程使用不同的锁,每个线程都需要另一个线程持有的锁 * 出现:同步的嵌套 * */ public class Test01 { public static void main(String[] args) { Tom tom = new Tom(); Alice alice = new Alice(); MyThread mt1 = new MyThread(tom, alice, true); MyThread mt2 = new MyThread(tom, alic

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

【Unity 3D】学习笔记三十三:游戏元素——天空盒子

天空盒子 一般的3D游戏都会有着北京百年一遇的蓝天,让人惊叹不已.其实天空这个效果没有什么神秘的只需用到天空盒子这个组件就行,可以将天空设想成一个巨大的盒子,这个盒子将整个游戏视图和所有的游戏元素包含其中.在unity中制作天空盒子非常方便,只需要像设置其他组件一样设置下就行了.在制作天空盒子之前,我们需要搜集一些天空的贴图,不过,unity很方便的为开发者提供了天空盒子的资源包.首先在project视图中点击鼠标右键,然后选择import package--skyboxes即可添加天空盒子的资

【Unity 3D】学习笔记四十一:关节

关节 关节组件可以添加至多个游戏对象中,而添加关节的游戏对象将通过关节连接在一起并且感觉连带的物理效果.需要注意的是:关节必须依赖于刚体组件. 关节介绍 关节一共分为5大类:链条关节,固定关节,弹簧关节,角色关节和可配置关节. 链条关节(hinge joint):将两个物体以链条的形式绑在一起,当力量大于链条的固定力矩时,两个物体就会产生相互的拉力. 固定关节(fixed joint):将两个物体永远以相对的位置固定在一起,即使发生物理改变,它们之间的相对位置也将不变. 弹簧关节(spring

【Unity 3D】学习笔记四十六:输入与控制——键盘事件

在游戏中,玩家控制主角移动,按键攻击,选择行走.都需要在程序中监听玩家的输入.unity为开发者提供了input库,来支持键盘事件,鼠标事件以及触摸事件.本文主要回顾键盘事件,以后会逐文复习鼠标以及触摸事件. 键盘事件 一般的PC键盘有104个不同的按键,在程序中通过监听这些按键事件,从而进一步执行逻辑操作.如:射击游戏中,W表示前进,S表示后退,A表示左移,D表示右移. 按下事件 在脚本中,用input.GetKeyDown( )方法将按键值作为参数,监听此按键是否被按下.按下返回true,否

【Unity 3D】学习笔记四十五:游戏实例——击垮围墙

用这个游戏实例来总结之前我们复习的所有关于物理引擎的知识.在游戏中,发送一个球形的炮弹来击垮前面的墙.给炮弹与墙都添加了刚体组件,给炮弹绑定了粒子系统,并且在炮弹的粒子动画中添加了5组不同的颜色,显示移动轨迹. using UnityEngine; using System.Collections; public class Script_06_14 : MonoBehaviour { //炮弹对象 private GameObject obj; //准心贴图 public Texture te

【Unity 3D】学习笔记四十四:路径渲染

路径渲染 路径渲染属于特效渲染组件,用于跟随运动中的游戏对象.首先在hierarchy视图中,创建一个球体.然后在菜单导航栏中选择component--effects--trial renderer即可将路径渲染组件添加至该球体对象中. cast shadows:显示阴影效果. receive shadows:接受阴影效果. materials:材质. size:渲染的材质数量,可添加或删除. element 0:渲染材质文件. use light probes:是否使用光线探头. light

Swift学习笔记四:数组和字典

最近一个月都在专心做unity3d的斗地主游戏,从早到晚,最后总算是搞出来了,其中的心酸只有自己知道.最近才有功夫闲下来,还是学习学习之前的老本行--asp.net,现在用.net做项目流行MVC,而不是之前的三层,既然技术在更新,只能不断学习,以适应新的技术潮流! 创建MVC工程 1.打开Visual studio2012,新建MVC4工程 2.选择工程属性,创建MVC工程 3.生成工程的目录 App_Start:启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Conten