问题:
用脚本改变一个物体的transform.position,但是物体在场景中的位置并没有变化。(被改动的物体有CharacterController插件)
原因:
猜测是CharacterController的问题,但是具体原因还没有去深究。。。
解决办法:
我发现这样改position可以行得通:
target_transform.gameObject.GetComponent<CharacterController>().enabled = false; //神奇
target_transform.position = spawnPosition;
target_transform.gameObject.GetComponent<CharacterController>().enabled = true;
就是先禁用那个组件改了位置再启用。
我也知道这样不太好。。。
(运行的时候可能会遇到奇怪的bug要注意!)
当尝试使用脚本修改带有CharacterController组件的物体位置时,发现物体实际位置未改变。原因是CharacterController的更新机制导致的冲突。通过暂时禁用CharacterController,设置新位置后再启用,可以解决此问题。虽然这种方法可行,但在运行时可能引入潜在的bug。
16万+





