unity3d学习(四)
sshong 发表于2013年2月3日 12:55:43 更新于2013年2月3日 12:55:43
1、projector 投影穿透问题
unity里的projector投影器(譬如用来做人物脚底下的阴影等)投射下来,只要在near和far之间的物体表面都会被投射到,这不是一般游戏需要的效果,一般只需要在第一个面上投射即可。
目前的解决方案时,投影器update里,动态raycast最近的面,去设置他的near和far
http://answers.unity3d.com/questions/160596/blob-shadow-going-through-multiple-objects.html
2、脚本里动态改某gameobject的layer以及所有子的layer
unity里gameobject动态改active可以只改自身(GameObject.active),也可以同时更改其所有子的active(GameObject.SetActiveRecursively)。
unity里gameobject动态改layer只提供了更改自身的layer方法,不会更改所有子的layer。可以自己写一个
3、动态改某gameobject以及所有子的render的接受阴影以及产生阴影等
unity里的projector投影器(譬如用来做人物脚底下的阴影等)投射下来,只要在near和far之间的物体表面都会被投射到,这不是一般游戏需要的效果,一般只需要在第一个面上投射即可。
目前的解决方案时,投影器update里,动态raycast最近的面,去设置他的near和far
http://answers.unity3d.com/questions/160596/blob-shadow-going-through-multiple-objects.html
2、脚本里动态改某gameobject的layer以及所有子的layer
unity里gameobject动态改active可以只改自身(GameObject.active),也可以同时更改其所有子的active(GameObject.SetActiveRecursively)。
unity里gameobject动态改layer只提供了更改自身的layer方法,不会更改所有子的layer。可以自己写一个
private void SetLayerRecursively(Transform parent, int layer)
{
parent.gameObject.layer = layer;
foreach (Transform child in parent)
{
InnerSetLayerRecursively(child, layer);
}
}
3、动态改某gameobject以及所有子的render的接受阴影以及产生阴影等
/// <summary>
/// 自己以及所有子是否接受阴影
/// </summary>
public bool receiveShadows
{
set
{
Renderer[] renders = GetComponentsInChildren<Renderer>(true);
//
foreach (Renderer render in renders)
{
render.receiveShadows = value;
}
}
}
评论
暂无评论添加评论
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang AI 最近发表
- claude code / codex的一些配置(2026年5月5日 17:38:10)
- 2026年5月5日(2026年5月5日 17:27:39)
- js的锁以及异步调用相关(2024年11月30日 10:58:51)
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
最近回复