1
0
forked from cgvr/DeltaVR

spawn generated object as default ufo's child, not separate object

This commit is contained in:
2026-05-12 11:38:53 +03:00
parent 4e55b7e9ab
commit bd5cc0f405
3 changed files with 65 additions and 255 deletions
@@ -87,8 +87,6 @@ public class ArcheryRange : NetworkBehaviour
if (exitedPlayer == _scoredPlayer) keyboardManager.DeActivate(); // If the player ´refuses to enter their name.
}
public override void OnStopServer()
{
base.OnStopServer();
@@ -133,18 +131,18 @@ public class ArcheryRange : NetworkBehaviour
private ArcheryTarget SpawnTarget(Vector3 randomPos)
{
GameObject targetObject;
if (modelDisplay.Model == null)
// Spawn default UFO
GameObject targetObject = Instantiate(targetPrefab, randomPos, targetStartPosition.rotation, null);
if (modelDisplay.Model != null)
{
// spawn default UFO
targetObject = Instantiate(targetPrefab, randomPos, Quaternion.identity, null);
} else
{
// spawn generated model
targetObject = Instantiate(modelDisplay.Model, randomPos, Quaternion.identity, null);
InitializeArcheryTargetObject(targetObject);
// Spawn generated object directly as default UFO's child
GameObject childObject = Instantiate(modelDisplay.Model);
childObject.transform.SetParent(targetObject.transform, false);
childObject.transform.localScale *= targetSizeIncrease;
// Disable UFO's default body
targetObject.transform.Find("Body").gameObject.SetActive(false);
}
targetObject.transform.rotation = targetStartPosition.rotation;
ArcheryTarget target = targetObject.GetComponent<ArcheryTarget>();
target.endPosition = targetEndPosition.position;
@@ -153,22 +151,6 @@ public class ArcheryRange : NetworkBehaviour
return target;
}
private void InitializeArcheryTargetObject(GameObject targetObject)
{
ArcheryTarget archeryTarget = targetObject.AddComponent<ArcheryTarget>();
archeryTarget.pointsText = archeryTargetPointsText;
Rigidbody rigidbody = targetObject.AddComponent<Rigidbody>();
rigidbody.useGravity = false;
rigidbody.isKinematic = true;
targetObject.AddComponent<NetworkObject>();
targetObject.AddComponent<NetworkTransform>();
targetObject.transform.localScale *= targetSizeIncrease;
}
public void ResetRange()
{
if (!IsServer) return;