我正在统一从事高尔夫游戏,在那里我有一个摄像头根据鼠标x和y的输入绕球旋转。在我开始向球施加力之前,相机控制器代码可以正常工作。请参见下面的相机控制器代码:
void ControlCamera()
{
// Do Nothing if Locked
if (cameraLocked)
return;
// Handle Zoom
myCamera.transform.position = Vector3.MoveTowards(myCamera.transform.position, transform.position, Input.mouseScrollDelta.y);
// Handle Y Transformation
Transform yTransform = myCamera.transform;
yTransform.RotateAround(transform.position, Vector3.left, Input.GetAxis("Mouse Y") * cameraSensitivity);
if (yTransform.rotation.eulerAngles.x < maxXRot && yTransform.rotation.eulerAngles.x > minXRot)
{
myCamera.transform.rotation = yTransform.rotation;
myCamera.transform.position = yTransform.position;
}
// Handle X Transformation
myCamera.transform.RotateAround(transform.position, Vector3.down, Input.GetAxis("Mouse X") * cameraSensitivity);
// Prevent Z Skew
Quaternion currentRotation = myCamera.transform.rotation;
float xRot = currentRotation.eulerAngles.x;
float yRot = currentRotation.eulerAngles.y;
currentRotation.eulerAngles = new Vector3(xRot, yRot, 0);
myCamera.transform.rotation = currentRotation;
}
相机对象是球对象的子对象,并且在施加力时随球滚动。我尝试从球对象上拆下相机对象,这会破坏相机对象(它不再跟随球,因为它不再是孩子了)。
有什么想法可以使我的代码保持现在的美观和简单,并防止摄像机在跟随球的同时滚动?
答案 0 :(得分:2)
一种解决方案可能是将gameObject 2个孩子放在球内,一个让球旋转,另一个让照相机。这样,摄像机将跟随不旋转的父gameObject(但您应该更新位置)。
另一个是我最喜欢的一个,是不要将相机放在球游戏对象上,只是从球位置更新相机位置,只是更新位置,而不是旋转即可。像这样:
'NoneType' object has no attribute 'rules'
Traceback (most recent call last):
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\knack\knack\cli.py", line 215, in invoke
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 631, in execute
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 695, in _run_jobs_serially
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 688, in _run_job
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\six\six.py", line 703, in reraise
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 665, in _run_job
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\commands\__init__.py", line 324, in __call__
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\__init__.py", line 574, in default_command_handler
File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli\azure\cli\command_modules\cdn\custom.py", line 396, in add_action
AttributeError: 'NoneType' object has no attribute 'rules'