Question by
TheJerryCan · Apr 19, 2020 at 08:20 PM ·
rotationnot workingspawning problems
doors wont spawn at intended rotation and only spawn at -180
I have a system the spawns rooms and when each room is entered it needs to spawn a door locking the player in the room. however, the doors are spawning in the correct position just not the correct rotation they always seem to spawn at -180 regardless of the rotation of the door spawning object. I would like the dorrs to spawn on the objects door and door (1) with the same rotation. I've tried everything and can't seem to get it to work. sorry, the code is messy I've been trying different things and messing with it.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class trigger_spawner : MonoBehaviour
{
public GameObject hazardSpawner;
public GameObject door;
private Transform player;
private Transform doorPos;
private Vector3 doorRotation;
private Vector3 doorRotation2;
private Vector3 doorSpawn;
private Transform doorPos2;
private Vector3 doorSpawn2;
private Vector2 target;
public bool complete;
// Start is called before the first frame update
void Start()
{
complete = false;
doorPos = gameObject.transform.Find("doors");
doorSpawn = new Vector3(doorPos.position.x, doorPos.position.y, doorPos.rotation.z);
doorRotation = new Vector3(doorPos.rotation.x, doorPos.rotation.y, doorPos.rotation.eulerAngles.z);
print(doorRotation.z);
doorPos2 = gameObject.transform.Find("doors (1)");
if (doorPos2)
{
doorSpawn2 = new Vector3(doorPos2.position.x, doorPos2.position.y);
doorRotation2 = new Vector3(doorPos2.rotation.x, doorPos2.rotation.y, doorPos2.rotation.z);
}
else
{
doorPos2 = gameObject.transform.Find("doors");
doorSpawn2 = new Vector3(doorPos.position.x, doorPos.position.y);
doorRotation2 = doorRotation;
}
player = gameObject.transform;
target = new Vector2(player.position.x, player.position.y);
}
// Update is called once per frame
void Update()
{
}
void OnTriggerEnter2D(Collider2D coll)
{
if (coll.gameObject.tag == "Player")
{
GameObject newDoor = GameObject.Instantiate(door);
newDoor.transform.position = new Vector3(doorSpawn.x, doorSpawn.y);
newDoor.transform.rotation = new Quaternion(0, 0, doorRotation.z, 0);
GameObject newDoor2 = GameObject.Instantiate(door);
newDoor2.transform.position = new Vector3(doorSpawn2.x, doorSpawn2.y);
newDoor2.transform.rotation = new Quaternion(0, 0, doorRotation2.z, 0);
if (complete == false)
{
GameObject newHazard = GameObject.Instantiate(hazardSpawner);
newHazard.transform.position = new Vector3(target.x, target.y, 0);
complete = true;
}
}
}
}
Comment