您的位置:首页 > 移动开发 > Unity3D

unity3d 初学者注意事项

2015-03-31 11:30 99 查看
1、改变物体材质

gameObject.Find("objB_05").renderer.material= OverMatier;

等号右边如果是材质面板中的一个材质,会报错说 overmatier not identid。解决办法在script定义个变量,名字就是他了,然后在面板中拖拽一个给他。

注意材质包括:shader和纹理两部分。

问题2 总是提示找不到(没有) renderer

解决过程: 本来是装的4.5.2,然后重装4.6.3后没这个问题了,但是if语句不起作用,然后干脆卸载干净,再重装4.5.3. 一切就好了

3、获取子物体的左右组件(http://game.ceeger.com/Script/GameObject/GameObject.GetComponentsInChildren.html)

// 使这个游戏物体及其子物体上的所有HingeJoints上的spring不可用.

var hingeJoints : HingeJoint[];

hingeJoints = gameObject.GetComponentsInChildren(HingeJoint); // 注意中间s

for (var joint : HingeJoint in hingeJoints) {

joint.useSpring = false;

}

问题4 Camera.main.WorldToScreenPoint(transform...)提示没有实体关联的错。

解决过程:问题使用Camera来使用WorldToScreenPoint是静态,要用find().camer.WorldToScreenPoint(...) 就ok了

下面一段代码是在网上找到一种解决方法,我式了一下,没能解决我的问题。

****************************************************************************************************

Camera.main.WorldToScreenPoint(transform.position)只能在与场景运行相关的代码块中使用

//错误

Vector3 drawPos = Camera.main.WorldToScreenPoint(transform.position);

//正确

Vector3drawPos ;

// 先在外面定义

// 然后要在Update()方法块中进行定义,否定会系统会报错

void Update () {

drawPos= Camera.main.WorldToScreenPoint(transform.position);

drawPos.y = Camera.main.pixelHeight -drawPos.y;

}

*****************************************************************************************************

5、 build 的时候identification填写注意

Bundle Identifier com.mycompany.room3 com.XXXX.工程名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: