Hey all, I’ve come to the end of my tether with this thing, just wanted to make an animated door prefab but it’s been absurdly difficult, mostly to my inexperience but having fixed my main issue, I’ve run into this one and I don’t have the slightest idea where to start and my time is short!
So, here’s what I’m trying to do and what currently works:
Click on the door with the mouse, if within a certain distance, the door will open, click it again, it will close.
This works fine, using a trigger on the animator.
What goes wrong, is that when I duplicate the door, clicking on either door, will only animate the first door.
Here’s my code:
Placed on the door:
using UnityEngine;
using System.Collections;
public class Doorcontrol : MonoBehaviour {
Animator animator;
// Use this for initialization
void Start()
{
animator = GetComponent<Animator>();
}
// Update is called once per frame
public void animateDoor () {
Debug.Log("Hello door control");
animator.SetTrigger("Boop");
}
}
on the input handler in the game world:
using UnityEngine;
using System.Collections;
public class InputControl : MonoBehaviour
{
private Doorcontrol doorScript;
public GameObject doorObj;
void Start()
{
doorObj = GameObject.Find("Door");
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0))
{
RaycastHit Hit;
Debug.Log("Mouse boop");
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out Hit, 1000f))
{
if (Hit.collider.tag == "Door")
{
Debug.Log("Hello Door!");
doorObj.GetComponent<Doorcontrol>().animateDoor();
}
}
}
}
So, anyone got any ideas on how to tweak this and make it so the correct door , the one clicked on, is the one that animates? use of this.gameobject some how?
Cheers all!