在C#代码中对transform.position直接进行赋值,发现不能让目标瞬移,代码如下:
但transform.rotation是生效的
var player = RegisterManagement.Instance.GetSceneObject("Player");
player.transform.position = p.position;//不生效
player.transform.rotation = p.rotation;//生效
发生问题组件:
解决方案:
因为Character Controller组件的问题,导致对position的直接修改无效,只需要在赋值前禁用该组件即可。
RegisterManagement.Instance.GetSceneObject("Player").GetComponent<CharacterController>().enabled = false;
var player = RegisterManagement.Instance.GetSceneObject("Player");
player.transform.position = p.position;
player.transform.rotation = p.rotation;
RegisterManagement.Instance.GetSceneObject("Player").GetComponent<CharacterController>().enabled = true;