У меня есть простой скрипт, который должен захватить позицию и поворот поворота GameObject, а затем переместить GameObject обратно в эту позицию, когда его ударил Raycast. (Объекты перемещаются, когда игрок сталкивается с ними.)
Хорошо работает для объектов, к которым уже прикреплен скрипт, но когда я применяю скрипт к новому GameObject, он сбрасывает значения преобразования в (0, 0,0), (0,0,0) в редакторе сцены.
Я уверен, что есть более разумный способ сделать это.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TransformReset : MonoBehaviour
{
private Transform LocalTransform;
private Vector3 InitialPos;
private Quaternion InitialRot;
private Vector3 CurrentPos;
private Quaternion CurrentRot;
void Start()
{
InitialPos = transform.position;
InitialRot = transform.rotation;
}
public void Reset()
{
transform.position = InitialPos;
transform.rotation = InitialRot;
Debug.Log("resetting position of " + gameObject.name);
}
}
эта часть "public void Reset ()" вызывается моим скриптом raycasting. Но я думаю, что проблема заключается в том, что он работает в редакторе сцены прежде, чем когда-либо получит полезное значение «InitialPos».
Благодарим за любую помощь и совет.