怎么再unity中添加unity3d 树木摇动效果

在unity中如何在模型上加载树
全部答案(共1个回答)
讲图片拖进模型就好,炸开,按材质取色,这个只能在这一个模型中使用,如果要长久使用就得自建材质文件,按照文件夹中的文件格式做就可。
画树模型 Hierarchy 标签栏中,点击Create – > Tree 可以创建一个树的模型,设置自己的树木模型,这里我们先导入系统自带的树木模型,以后在讨...
需要安装UnityWEB插件才可以导出,另外检查是不是完整版
不知道为什么在布局里画图,办法两个:
1.chspace是用来转换模型与布局之间图形的。如果是在布局里,输入这个命令,选中图形,确定,就直接把布局里的图形转化到...
你的场景中应该有多个物体,而且至少有两个距离很远,当全部显示的时候场景已经推到很远了,导致物体显示得很小。要把它们距离摆近或是删除不必要的东西。
答: 维生素ad滴剂管啥的?医生给我开了这个ad滴剂,不知道有什么用的呢。
答: 一般情况下是不会的,如果出现了也不会是失真,而是数据丢失。
答: 你要共享装系统可能难以实现了,因为共享一定要有一个完整的系统才能共享的,因为装系统时本机的系统以作废不能作了所以是不能共享的,玩得起电脑了花点钱买个光驱也直得吧...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415Unity 组件手册
创建您的第一棵树
现在我们将带您一起在 Unity 中创建您的第一棵树木创建器树 (Tree Creator Tree)。首先,请确定您的工程中已包含树木创建器程序包 (tree creator package)。如果没有,请选择资源 (Assets) -& 导入程序包 (Import Package...) ,导航到 Unity 安装文件夹,然后打开名为 标准程序包 (Standard Packages) 的文件夹。选择 Tree Creator.unityPackage'' 程序包以获取您的工程所需的资源。
添加一棵新树
要创建一个新的树 (Tree) 资源,请选择游戏对象 (GameObject) -& 创建其他 (Create Other) -& 树 (Tree)。
您将看到您的工程视图 (Project View) 中创建了一个新的树 (Tree) 资源,并且该资源在当前打开的场景 (Scene) 中实例化。这棵新树 (Tree) 还很简单,只有一个树干,我们来为它添加某些特性。
Adding Branches
您的场景中生成的一棵崭新的树
选中这棵树以查看检视器 (Inspector) ) 中的树木创建器 (Tree Creator)。这个界面为您提供 塑造和雕刻树木的所有工具。您将看到呈现两个节点的树木层级视图 (Tree Hierarchy) :树根 (Tree Root)
节点和一个单一 树枝组 (Branch Group) 节点(我们将称其为树干)。
在树木层级视图 (Tree Hierarchy) 中,请选择 树枝组 (Branch Group)(充当树的树干)。单击添加树枝组 (Add Branch Group) 按钮,您将会看到一个新的树枝组 (Branch Group)
出现在主枝 (Main Branch) 上。现在您可以使用树枝组属性 (Branch Group Properties) 中的设置进行播放来看连接至树干的树枝的变化。
在树干上添加树枝。
在树干上创建了树枝后,我们现在可以通过连接另一个树枝组 (Branch Group) 节点,在新创建的树枝上添加更小的树枝。选择次级树枝组 (Branch Group) 并再次单击 添加树枝组 (Add Branch Group)
按钮。微调这个组的值,创建更多连接至次级树枝的树枝。
在次级树枝上添加树枝。
现在,这棵树的树枝结构已经完成。我们的游戏不是发生在冬天,所以要在树枝上添加树叶 (Leaf) ,对吧?
Ad添加树叶
我们通过添加树叶组 (Leaf Group)来用树叶装饰我们的树,这和刚才添加树枝组 (Branch Group) 的操作基本上是一样的。选中次级树枝组 (Branch Group) 节点,然后单击添加树叶组 (Add Leaf Group) 按钮。如果想进行非常细致地塑造,您也可以再在最小的树枝上添加另一个树叶组。
添加到次级树枝和最小树枝上的树叶
现在,树叶被渲染成不透明的平面。因为在为它们添加材质之前,我们要调整树叶的值(大小、位置、旋转等)。微调树叶 (Leaf) 的值,直至您找到想要的设置。
为了使树看起来更加逼真,我们要在树枝和树叶上应用材质 (Material)。通过资源 (Assets) -& 创建 (Create) -& 材质 (Material) ,在工程中创建一种新材质 (Material)。将其重新命名为“我的树皮”(My Tree Bark),并在着色器 (Shader) 下拉菜单中选择 自然 (Nature) -& 树木创建器树皮 (Tree Creator Bark)。在这里,您可以将树木创建器程序包 (Tree Creator Package) 中提供 的 纹理 (Texture) 配到树皮材质 (Bark Material) 的基础 (Base)、法线贴图 (Normalmap) 和光泽 (Gloss) 属性。我们建议基础 (Base) 和光泽 (Gloss) 属性使用 "BigTree_bark_diffuse" 纹理,法线贴图 (Normalmap) 属性使用 "BigTree_bark_normal" 纹理。
现在,我们按照同样的步骤创建树叶材质 (Leaf Material)。创建一种新材质 (Material) 并通过自然 (Nature) -& 树木创建器树叶 (Tree Creator Leaves) 配着色器。将树木创建器程序包 (Tree Creator Package) 中的树叶纹理分配至纹理槽。
树叶的材质 (Material)
两种材质 (Material) 都创建好之后,将它们分配到树 (Tree) 的不同组节点 (Group Node)。选中树 (Tree) 并单击任何树枝 (Branch) 或树叶 (Leaf) 节点,然后展开树枝组属性 (Branch Group Properties)中的几何结构 (Geometry)
部分。您将看到一个已选节点类型的材质 (Material) 分配槽。分配您创建的相关材质 (Material) 并查看结果。
设置树叶材质
为完成这棵树,请将您的材质 (Material) 分配到树 (Tree) 上所有的树枝 (Branch)
和树叶组 (Leaf Group) 节点。现在,您游戏中的第一棵树已经完成了。
树的树叶和树枝都应用了材质。
o 创建树是一个反复试验的过程。
o 不要创建太多的树叶/树枝,因为那样会影响游戏的性能。
o 查看用于创建自定义树叶的 指南。
Page last updated:unity3d游戏开发之树的创建_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
unity3d游戏开发之树的创建
&&unity3d游戏开发之树的创建
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢查看: 635|回复: 1
Unity3D 自定义树组件(树形菜单)
主题帖子积分
论坛元老, 积分 466184, 距离下一级还需 9533815 积分
论坛元老, 积分 466184, 距离下一级还需 9533815 积分
树组件在平时的开发中不常见,但是在某些场合下用树展示数据更加直观,比如在游戏中的展示任务数据,因为任务分很多类,所以这儿使用树就非常合适,NGUI 组件中并不存在树组件,毛主席说过:“自己动手,丰衣足食”,本次例子实现树组件的创作。2 Y1 D; c( i! \1 t9 u: m! n6 ^# h
& &最终的效果图,如下:' v. |) Q6 f0 ~
20_5625_new.jpg (132.76 KB, 下载次数: 0)
13:36 上传
' `& S9 @3 x& u: v8 a
& &先来搭建测试场景,因为 NGUI 默认的布局是水平居中布局,但是这样不利于我们计算坐标,所以我们的测试场景中的 TaskPanel 对象下的 Background 以及 TaskList 对象的 UISprite 组件的 Pivot 属性选择左上,意味着从左上角为原点 (0,0),如图:4 X3 I2 ^, U7 N, g- P: x
34_3750_new.jpg (139.84 KB, 下载次数: 1)
13:36 上传
& &然后创建树的节点对象,取名 TaskTreeItem,其中也需要把 UISprite 组件的 Pivot 对象设置为左上,另外还需要添加 BoxCollider 组件,以响应鼠标的点击,如图:
46_1250_new.jpg (130.04 KB, 下载次数: 2)
13:36 上传
& &新建立一个 C# 类,取名:TaskTreeItem.cs,代码如下:using UnityE9 s! c/ [% s0 v" }2 H
using System.C
public class TaskTreeItem : UTreeItem / F3 f9 }: ?! e- ?! ^' Z* x2 f
' D4 R" z, `, I' ?( d/ s* z
}5 v. x: B) q
& &然后把 TaskTreeItem.cs 挂载到 TaskTreeItem 对象上,如图:8 u. H7 i. Q' G+ F! @6 I1 ?
36_6406_new.jpg (132.53 KB, 下载次数: 0)
13:36 上传
2 q) G8 W( `% Z! O
& &再次建立一个新的 C# 类,取名:TaskTree.cs,代码如下:using UnityE$ g% O- `7 g3 Z0 P6 }0 G
using System.Collections.G
* w4 y&&[! T5 T; e. Y) K0 t( B2 B+ b$ `
public class TaskTree : UTree + N) d1 i& p. w! D' k8 E2 k) F, Z
{2 v( T! L9 ]3 L( f' B
protected override void InitTree ()6 g5 }$ G. m, k- N" U
{2 @: }' `( q& a/ [
&&IList&UTreeData& testList = new List&UTreeData& ();
&&testList.Add (new UTreeData (20, &1&, &0&, &主线任务&, null));# `* s! B' {0 P* x$ X
&&testList.Add (new UTreeData (20, &2&, &0&, &支线任务&, null));&&j; K) y( ?" A$ x2 i. H
&&testList.Add (new UTreeData (20, &3&, &1&, &武器大师称号&, new TaskData(&1&, &武器大师称号&)));, K) {* x" |+ c/ P# l2 T* G: ^
&&testList.Add (new UTreeData (20, &6&, &1&, &暴风城义工报名&, new TaskData(&1&, &暴风城义工报名&)));
&&testList.Add (new UTreeData (20, &7&, &1&, &豺狼人霍格&, new TaskData(&1&, &豺狼人霍格&)));" Z/ n" {3 [
&&testList.Add (new UTreeData (20, &8&, &2&, &公主必须死&, new TaskData(&1&, &公主必须死&)));
&&testList.Add (new UTreeData (20, &6&, &2&, &西部荒野豺狼人&, new TaskData(&1&, &西部荒野豺狼人&)));3 x1 z5 M6 ?* u& u
&&this.ChangeData (testList);
protected override void ChangeTreeHeight ()
&&Debug.Log (&树高度变化&);
8 V& j( s5 e9 c! F4 q1 n
protected override void ChangeTreeSelect (UTreeData uTreeData)
&&Debug.Log (&当前选择任务:& + uTreeData.name + &(ID:& + uTreeData.id + &)&);) \4 f% B! t8 i% E
}6 q$ j/ o% L' A
& &接着把 TaskTree.cs 挂载到 TreeList 对象上,如图:
02_4843_new.jpg (128.95 KB, 下载次数: 0)
13:36 上传
' I* D$ D# o2 K$ Q
& &在 TaskTree.cs 中使用到了 TaskData.cs,代码如下:using UnityE
using System.C
public class TaskData
/// &summary&
/// 任务编号; w) S% V! ?: a+ F& z, V& O
/// &/summary&
public string taskID;
% B$ {# N' C5 |/ S6 z* [+ i
/// &summary&
/// 任务名称) H3 h" g9 \5 v" F& f! T
/// &/summary&. P. O; A* P% i- y8 Y8 M, D
public string taskN
9 ^% d8 y% a* g: X9 E, J8 B+ A1 t
public TaskData(string taskID, string taskName)
&&this.taskID = taskID;
&&this.taskName = taskN
}3 `) M% F) R3 p
}下面的几个类是树的组件类,包括:UTreeData.cs 代码如下:using UnityE1 ?2 ~+ n& Z3 {
using System.C0 T4 N+ G; e0 k1 O! q/ Q0 a
, N' P, d0 d% e5 R) G
public class UTreeData+ ~& P; @/ m: `- c' Z" f' x" D
{- E- H) M3 A& W! S" ]
/// &summary&
/// 偏移! N) a& \7 Z- Z- ?
/// &/summary&
/// &summary&1 f8 w& B4 g# P2 V" B* |2 ]( J
/// 当前 ID
/// &/summary&
&&H6 P' l2 e: H% U7 `
6 J" q. Y: ~1 Z+ @# ?$ M& Q
/// &summary&+ a% F+ i3 S' C5 h1 |
/// &/summary&6 j6 r5 N. L; Z
public string parentID;
/// &summary&" f$ V1 T8 E+ u9 j. K" ~' D
/// &/summary&! U/ h3 q6 i" p" n& R
5 M$ T" G5 M7 c& Z$ S
" M5 q+ S4 [/ m7 ]
/// &summary&- ~: p8 |5 G% @7 i5 _3 ]6 x
/// 文本$ |/ u&&S; ~' p$ l# B" }
/// &/summary&+ k% g% k3 A8 I$ I
& @: V3 ]5 o* X0 }&&m1 {
6 E4 m5 I&&@9 w) y1 s
/// &summary&
/// 树对象7 ]6 \&&Y5 A) Q
/// &/summary&
$ F6 O: g4 a+ H2 q5 f7 G5 `" ^
/// &summary&
/// 展开状态
/// &/summary&$ `, r5 s8 t: A* F! _$ k2 B
public bool expand =6 v" A/ e1 z5 T0 O( @6 h
public UTreeData(float offset, string id, string parentID, string name, object data)) H" Q4 T2 L( L- h- c+ A
{1 ]# a3 u: H4 }
&&this.offset =
&&this.id =* M&&r4 q, C" M
&&this.parentID = parentID;1 z% g7 y2 ^/ y, C/ R! T$ `6 t
&&this.name =
&&this.data =
}& C' K/ O" K3 w* ]7 o8 K+ L
}UTreeItem.cs 代码如下:using UnityE
using System.C
( S) ]4 B& f# F) c, g7 o% m
public class UTreeItem : MonoBehaviour 5 o* z2 N! l8 I3 ]
{4 C. H8 G7 ?- {. M( T" A
public delegate void ItemClick(UTreeData treeData);7 }& R) p&&u& |1 g% C
$ ?8 A9 i( ?&&z4 W5 W* e
/// &summary&! q. Y/ G7 I2 ]&&y1 v+ t8 g
/// &/summary&& A- D0 A' o* M7 k3 W, S
public UIS1 K$ v5 J3 t8 d) Q. W+ V# s
. o. E6 g) Z; z% P2 _3 O! F4 v
/// &summary&; u/ q3 ~- M+ u, L' `7 L
/// &/summary&$ y* \2 T5 t* S* c9 J
public UIL
/// &summary&
/// 图标范围
/// &/summary&: |0 _3 E: J&&R1 w&&S- O
private Bounds iconB
/// &summary&8 `/ O4 y' R, f# a- U
/// 节点数据
/// &/summary&
[HideInInspector]) g) p% `1 P6 {% [6 q% K2 r
public UTreeData treeD
/// &summary&+ t* G4 [- O0 c9 f: [
/// 节点点击回调函数' h$ o9 M! l# u
/// &/summary&7 D. X/ e$ W7 C
private UTreeItem.ItemClick itemC
' j6 Y( Y( I* l9 o7 J- g
void Awake()
{& p3 J/ v0 A. t5 E- H8 T2 n
&&this.InitAwakeItem ();; {7 C# q9 p2 f! n
}0 T& P. A0 F* B&&T# B- F. [1 H2 S
, N# T+ w+ ?1 M2 E) }! W
/// &summary&
/// 树节点初始化&&}( \4 u&&q' r( l3 a, \( {; ]
/// &/summary&. a" v8 \: h& ]7 c, P( [# F
protected virtual void InitAwakeItem()
&&UIEventListener.Get (this.gameObject).onClick = OnClickH
&&this.iconBounds = NGUIMath.CalculateRelativeWidgetBounds (this.icon.transform);# J! x&&f" l0 t' x' S
}# x4 D/ i0 \# O; T( }5 k7 @
/// &summary&$ ~$ Q) E# x+ j
/// 设置数据
/// &/summary&( y9 v( t& m1 |
/// &param name=&treeData&&Tree data.&/param&
/// &param name=&itemClick&&Item click.&/param&
public void ChangeData(UTreeData treeData, UTreeItem.ItemClick itemClick)
{; H- @- U) q7 I# o4 ~+ S
&&this.itemClick = itemC
&&this.treeData = treeD
&&this.text.text = treeData.
&&this.TreeItemRender ();# B3 E+ E, d- K; B+ r# y
}! L( W- j$ D9 ~2 N
% [2 f9 M7 e6 i
/// &summary&- Y3 T5 \) F$ g
/// 树节点渲染
/// &/summary&
protected virtual void TreeItemRender()
{( \9 ^* e! O; E* O6 I
&&float offsetX = this.treeData.offset * this.treeData.
&&7 d, P' B. p9 X
&&this.icon.transform.localPosition = new Vector3 (offsetX, this.icon.transform.localPosition.y, 0f);: U) ^. V&&S2 W$ {, G4 A
&&this.text.transform.localPosition = new Vector3 (offsetX + this.iconBounds.size.x + 10.0f, this.text.transform.localPosition.y, 0f);7 Y- _8 R5 F8 s& j# P( a
private void OnClickHandler(GameObject o)5 o* t, T4 K! d7 B
&&if (this.itemClick != null) this.itemClick.Invoke (this.treeData);" m" r2 y&&B&&l7 B" r) u
}UTree.cs 代码如下:using UnityE5 _* K1 s4 _& ~+ r
using System.Collections.G- I3 `&&a0 W4 I* v6 \4 R
% i9 m9 l0 b' K5 _% i+ ?; a&&j2 u
public class UTree : MonoBehaviour 7 x) Z* e/ K/ p6 k! `, {
/// &summary&5 D% M$ U; N/ X5 h( ]7 D
/// 树节点的高度
/// &/summary&% W+ \$ s5 l& d/ b: r* @+ d) y* G$ i
public float itemH
: ?: k7 I0 _% _
/// &summary&! _- ^6 Q* Y9 d2 A' ^) o
/// 树数据
/// &/summary&
private IList&UTreeData& dataL7 F' a& R, Y&&f' g8 B: W7 r6 M$ E% B
/// &summary&
/// 树节点列表
/// &/summary&/ y- c2 D: N% i/ u# @- F
private IList&UTreeItem& itemL
/// &summary&% w* x& R4 U) U& v& s9 s0 ~, W
/// 节点索引" O/ s1 u* z. w8 d9 K& J
/// &/summary&
private int itemI1 c3 x8 w$ c+ c, H
8 I7 e9 e6 o3 ^6 h( K& ^! p8 N0 |
/// &summary&) l5 W8 y&&s/ N& H, Q6 y9 ^; S
/// 树的高度' s+ k0 J1 c* `5 A% c
/// &/summary&
protected float treeH5 z$ L$ |# m4 }# `, X
: ~9 A: b4 R7 J" S
/// &summary&# s/ G9 L4 g4 Z# v6 s. i
/// 设置树节点对象&&z3 W* x) @2 `; o# P$ U8 J
/// &/summary&
public UTreeItem uTreeI+ ?9 m* ], V( s! o0 t6 {# e' J
void Awake()/ i) A2 |8 k) O: {2 R
&&this.InitTree ();
}- r! ]- o. \! f6 k" i7 i0 P
5 _# O& d2 M6 i7 i+ O8 q# g
/// &summary&
/// 初始化树数据
/// &/summary&" H" P! y& `4 V2 M
protected virtual void InitTree(), s9 C" L, r% V
0 \0 I' d+ W5 N. O+ @& x
}7 Y&&Y7 d' k( P( w&&G& P/ l
/// &summary&
/// 创建树节点
/// &/summary&
/// &returns&The tree item.&/returns&5 Y&&J+ l( H8 S- K7 |# _
/// &param name=&index&&Index.&/param&
private UTreeItem CreateTreeItem(int index)
&&if (index &= 0 && this.itemList != null && index &= this.itemList.Count) ' q7 M&&Q* @; K2 a2 l
& &return this.itemList[index - 1].GetComponent&UTreeItem&();/ a0 I5 C) ]3 T4 u6 Y
&&d/ `+ l2 H% q- C/ U7 S1 p7 F+ K/ X
&&if (this.uTreeItem == null)% r. ^+ O; Z. |" J/ ^$ s3 y
&&GameObject treeItemObject = (GameObject)Instantiate(this.uTreeItem.gameObject);# n$ v3 x& Q$ A. h/ c4 S
&&treeItemObject.transform.parent = this.# [4 H" h6 |1 d' X2 O: z. t
&&treeItemObject.transform.localScale = new Vector3(1f, 1f, 1f);0 k$ T' I7 {) s* V; y# |0 A
&&3 G+ ~5 w. z( |8 A4 B2 E3 j
&&UTreeItem uTreeItem = treeItemObject.GetComponent&UTreeItem&();" U/ N2 Z" G6 ~9 t
&&this.itemList.Add(uTreeItem);
&&return uTreeI
}: k) L+ R&&_; b" I+ ?, N3 ?: i, e( f
% q: R" ^! [% V+ M
/// &summary&
/// 更新树数据4 N, ^2 d6 \) ]9 m$ {. k&&i
/// &/summary&1 d: ?/ y7 P1 G
/// &param name=&dataList&&Data list.&/param&0 p' V5 O; c) t2 C: p4 A
public void ChangeData(IList&UTreeData& dataList); z4 r5 e6 [$ P1 y1 C7 B2 |$ Y. L
{; E2 {6 H* _7 ^5 h! h/ z6 u
&&this.InitItemList ();
&&this.dataList = dataL
&&this.whileItem (&0&, this.GetChildrenDataList (&0&));0 W9 _5 q&&W1 a! y* {5 r&&]7 H) Q
&&this.treeHeight = this.itemIndex * this.itemH
&&this.ChangeTreeHeight ();9 i) @8 I" S% s- \( h/ U
3 Y* F# e( `8 H. Y
/// &summary&- R7 p3 I, F5 _; K) A, E
/// 递归创建树节点- r7 X% I+ `9 c+ O( y
/// &/summary&
/// &param name=&parentID&&Parent I.&/param&
/// &param name=&parentDataList&&Parent data list.&/param&
public void whileItem(string parentID, IList&UTreeData& parentDataList)
{; C) f! n7 ^# Q3 J) S# p- x
&&UTreeData parentTreeData = this.GetItemData (parentID);" D. O4 _2 Z. V) s/ G9 j
&&int level = 0;# U+ F- I3 l1 m& D; E
&&if (parentTreeData != null) level = parentTreeData.level + 1;
&&foreach (UTreeData uTreeData in parentDataList) 5 c& t9 d1 L5 Q! \
& &this.itemIndex ++;/ q) ~4 ]&&w% \' K&&e/ j1 _
& &uTreeData.level =
& G" p' _: P" l9 P9 R& Q0 j- z
& &UTreeItem uTreeItem = this.CreateTreeItem(this.itemIndex);
& &NGUITools.SetActive(uTreeItem.gameObject, true);9 d' z9 N% W# |. P7 w! P2 ^
) C* p4 D: h8 T0 _0 U3 C
& &uTreeItem.ChangeData(uTreeData, OnItemClickHandler);
& &uTreeItem.transform.localPosition = new Vector3(0f,
游戏咖啡屋-最好的游戏编程源码技术网站!1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关 交流QQ群:
2、本站所有主题由该帖子作者发表,该帖子作者与享有帖子相关版权
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
哈...今天心情不错,来游戏咖啡区签到了...
主题帖子积分
论坛元老, 积分 466184, 距离下一级还需 9533815 积分
论坛元老, 积分 466184, 距离下一级还需 9533815 积分
this.itemHeight - this.itemIndex * this.itemHeight, 0f);, ]8 _: ?- g4 c2 O: m&&E( b2 Y, H$ `0 E
& &if(uTreeData.expand)
& & IList&UTreeData& childDataList = this.GetChildrenDataList(uTreeData.id);' s# m% H9 `9 J0 x. P3 @
& & if(childDataList != null && childDataList.Count & 0) this.whileItem(uTreeData.id, childDataList);
' Y! T8 A/ O; O
/// &summary&
/// 树节点点击事件9 E0 |( w) V# `! V
/// &/summary&4 S$ e1 s$ O" E: x9 a( R3 Q
/// &param name=&uTreeData&&U tree data.&/param&
private void OnItemClickHandler(UTreeData uTreeData)% l& h$ @+ ]6 i9 \; }
&&IList&UTreeData& dataList = this.GetChildrenDataList (uTreeData.id);
&&UTreeData resultData = this.GetItemData (uTreeData.id);
&&if (resultData != null && dataList != null && dataList.Count & 0)
& &resultData.expand = resultData.expand == true ? false :; i&&S* ?/ K) J/ K
& &this.ChangeData (this.dataList);, \- `# O6 I" i' V% r9 \
&&} else {
& &this.ChangeTreeSelect(uTreeData);7 h7 {& m+ C; t/ K" f# f
&&}$ ]+ h: H! H* F/ z5 ~
}/ [: V0 R7 i5 v2 e8 Y&&w
6 d( C) F3 ^, H" \9 s
/// &summary&, ^&&m. d' }3 j8 M4 g/ W+ y, R
/// 更新树高度
/// &/summary&
protected virtual void ChangeTreeHeight()
}; s& T! W* U7 M# d
/// &summary&
/// 更新树节点选择
/// &/summary&
/// &param name=&uTreeData&&U tree data.&/param&( a2 }- V' Y& |7 V
protected virtual void ChangeTreeSelect(UTreeData uTreeData), b! S, Z* w# b7 m6 ^6 L&&V/ I9 u
{# @* C* W+ ~. i, h0 R
}6 x8 I4 t& B1 }9 Y- H/ m
/// &summary&5 j1 k1 c' X+ ]2 k
/// 获取节点的子节点数据
/// &/summary&* i: t: Y4 O$ S&&s- B
/// &returns&The children data list.&/returns&
/// &param name=&parentID&&Parent I.&/param&" I, Q+ F* G&&y% Y4 ^* f! o
private IList&UTreeData& GetChildrenDataList(string parentID)
&&IList&UTreeData& resultList = new List&UTreeData& ();5 X: W4 F! t- p& }. `
&&foreach (UTreeData uTreeData in this.dataList)
& &if(uTreeData.parentID == parentID) resultList.Add(uTreeData);
&&}# ?4 v/ |. }1 {, X# A
&&return resultL( c&&L- q+ e8 G* F! y4 C* f
}- t4 p6 }0 B9 K&&X/ G1 f0 V9 B
/// &summary&
/// 根据节点 ID 数据获取树数据! N( P& M+ G9 ?- {+ \$ L4 d0 j
/// &/summary&4 e$ E: t9 j7 c8 Z
/// &returns&The item data.&/returns&
/// &param name=&id&&Identifier.&/param&
private UTreeData GetItemData(string id)/ w# H- c: a- [&&Y0 C3 Z
{2 v/ f) }: n& R) b* i
&&foreach (UTreeData uTreeData in this.dataList) 2 v* Y: h- F# R9 e. I( [( C
& &if(uTreeData.id == id) return uTreeD
/ \$ p* J: `+ i+ w+ E! b
/// &summary&
/// 初始化树节点
/// &/summary&) y& I; K2 e3 l/ ]' ?" b# s& K! U
private void InitItemList()
&&this.itemIndex = 0;9 {( \8 u& Q6 w3 P
4 B8 `&&k$ @" c1 W: q8 Y: ]% ?
&&if (this.itemList == null) this.itemList = new List&UTreeItem& ();
&&if (this.itemList.Count & 0)
& &foreach (UTreeItem uTreeItem in this.itemList) 9 ^: p6 \' K; V1 r: l# k
& & NGUITools.SetActive(uTreeItem.gameObject, false);% R( \! w- E1 v
& &}- d9 @: J$ k+ @&&y4 K8 S
哈...今天心情不错,来游戏咖啡区签到了...
注册账号后积极发帖的会员
积极宣传本站,为本站带来更多的用户访问量
经常在论坛发帖,且发帖量较大
曾经为论坛做出突出贡献目前已离职的版主
Powered byUnity树木实例制作训练视频教程 CGCookie Fundamentals of Tree Creation - 游戏开发 - 人人素材社区 - Powered by Discuz!
只需一步,快速开始
只需一步,快速开始
后使用快捷导航没有帐号?
请完成以下验证码
所属分类: &
本版主题: 505
今日更新: 22
Unity树木实例制作训练视频教程 CGCookie Fundamentals of Tree Creation
签到天数: 62 天[LV.6]常住居民II&成长值: 240
Unity树木实例制作训练视频教程.jpg (42.25 KB, 下载次数: 3)
10:55 上传
本视频教程是由CGCookie机构出品的Unity树木实例制作训练视频教程,CGCookie Fundamentals of Tree Creation,时长:2小时,大小:510 MB,MP4高清视频格式,教程使用软件:Unity, 作者:Jonathan Gonzalez,共6个章节,语言:英语。
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac widgets所支持。
Unity3D是一个让你轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎,从一开始就被设计成易于使用的产品。作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎。Unity 4作为一个游戏开发工具,它的设计主旨就是让你能够创建令人惊讶的游戏。如果你之前尝试过Unity,请查看Unity 3都做了哪些更新。如果你是第一次尝试,那就好好看看吧,看Unity都能为你带来什么。Unity作为一种开发环境,可让你脱离传统的游戏开发方式,以一种更简单的方式专注于你的游戏开发。开发网络游戏、移动游戏、单机游戏,Unity都能完全胜任。
CGCookie Fundamentals of Tree Creation
In this short course we’ll go over using the Unity Tree Creator to create a tree. The Tree Creator is a somewhat hidden feature of Unity that is quite useful for creating any type of game optimized vegetation. There are quite a few settings and this course is designed to break it down to understand all the sliders, curves and drop down menus.
Things covered in this course include:
Creating branches and leaves
Utilizing curves to customize trees
Using wind zones and adjusting wind settings
Example of alternate vegetation that can be created
We’ll end the course by providing an example prefab of a bamboo set to give you an idea of the different types of vegetation that can be created with the “tree creator”.
解压密码:游客,如果您要查看本帖隐藏内容请
签到天数: 38 天[LV.5]常住居民I
回帖奖励 +2
感谢楼主分享!!!
签到天数: 1048 天[LV.10]以坛为家III&成长值: 140
回帖奖励 +2
感謝您無私的分享謝謝喔^_^
签到天数: 541 天[LV.9]以坛为家II
回帖奖励 +2
谢谢了,这么好的素材
签到天数: 541 天[LV.9]以坛为家II
谢谢了,这么好的素材
签到天数: 541 天[LV.9]以坛为家II
谢谢楼主的分享,
签到天数: 417 天[LV.9]以坛为家II
回帖奖励 +2
感谢楼主分享
签到天数: 12 天[LV.3]偶尔看看II
回帖奖励 +2
谢谢楼主分享~
签到天数: 291 天[LV.8]以坛为家I
谢谢楼主分享~~~~
签到天数: 147 天[LV.7]常住居民III
unity是不是开源免费的
大家好!人人素材网第136期中文字幕翻译教程来啦!
教程简介:
欢迎收看本套教程,这节课我们会使用cinema4D和AE来制作运动类型的包装模板。首先创建文件夹结构,然后在C4D建模做素材,使用建模和动画工具,还有CV工具栏来加快进度,接下来是灯光照明的讲解,再把三维数据导出到AE中,最后的部分呢,把C4D的序列发送到AE里,合成为模板,我们创建自定义控制、标签还有一些评论,方便后来人自定义模板,模板对于用户来说是提高速度的好帮手,不管是自己用,还是别人用,可以快速的改掉logo和图片,还有视频,甚至是用选项控制颜色,我们来创建属于自己的模板吧!
教程简介:
色彩是我们生活中的一项基础元素。学习在不同的情境中使用色彩进行视觉传达对于设计师和艺术家来说是基本技能。本教程中我们将要学习如何使用色彩,不仅仅是进行更加高效的设计,而且要传达故事情节。插画师、讲师和作者Mary Jane首先为我们讲解色彩如何影响品牌形象,如何影响观众的情绪,如何引导观众将注意力放在兴趣点上,以及如何连接图像或者制作元素之间的空间。她为我们揭开色轮和色彩关系的神秘面纱;为我们展示分层放置、混合,以及数字修改色彩;使用灯光整合色温、不透明度和对比度。
本教程适用于多个领域,包括平面设计、摄影和插画,同时还适用于传统媒体和数字媒体。深入了解并重新认识色彩一定会激发你的创造力和工作热情。
大家好!人人素材网第138期中文字幕翻译教程来啦!
教程简介:
现在的很多电影都是使用3D工具进行预览的,这样可以现场拍摄和视觉特效的效果。在这个教程中,杰森·迈克尔·霍尔(Jason Michael Hall)将会为大家讲解预览的功能,以及在很短的时间内一个艺术家能完成多少任务。教程中也会为大家讲解在电影制作行业中预览艺术家是如何工作的。使用Maya从一个空白的场景做起,杰森会为我们讲解制作素材组成场景的过程。他与我们探讨一些摄像机和电影艺术基础知识后,开始进行Blocking操作,里面会探讨提升速度、简化操作流程的效率,组织,摄影技术,和窍门。

我要回帖

更多关于 unity3d 树木 的文章

 

随机推荐