赞
踩
我的想法是在场景中加载一个对象,然后让它向前移动,结果测试的时候obj对象在场景中一动不动,搞半天也找不到原因,┭┮﹏┭┮,本来就很菜了,现在连个移动都解决不了,差点被自己气哭了。
private GameObject obj; public Vector3 startPos; void Start() { //从Resources文件夹中加载我的预制体 obj = Resources.Load("ball") as GameObject; //在startPos处实例化obj Instantiate(obj,startPos,Quaternion.identity); } void Update() { //让obj向前移动 obj.transform.Translate(Vector3.forward * 1 * Time.deltaTime); }
在代码中“此obj非彼obj”
Instantiate()
Instantiate()方法是有返回值的,这个返回值才是场景那个不会动的对象。
然而我犯的错就是,误以为从Resources中加载出来的obj就是场景中的对象。
Resources.Load()是把资源加载到内存当中,并没有加载到场景
所以我在Update中对obj进行位移,根本就作用不到场景中被实例化出来的那个对象
记录Instantiate()的返回值
public Transform StartPos; public Transform EndPos; private Object LoadObj; private GameObject ball; // Start is called before the first frame update void Start() { LoadObj = Resources.Load("ball"); ball = Instantiate(LoadObj, StartPos.position,Quaternion.identity) as GameObject; } // Update is called once per frame void Update() { ball.transform.Translate(Vector3.forward * 1 * Time.deltaTime,Space.Self); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。