- Home /
asset wont accept attached script
hi all, i have a Problem with an .obj-asset i try to Import to my Scene at runtime.
i have a script, which adds the asset. part of the script is following (the script works and the asset gets imported!):
if (itemLabel.Equals("Quelle"))
{
GameObject cube = OBJLoader.LoadOBJFile("path.obj");
cube.transform.position = new Vector3(x, y, z);
cube.transform.name = items[0];
cube.transform.tag = "Plant";
cube.transform.localScale = new Vector3(1, 1, 1);
cube.AddComponent<DragViaMouse>();
as you can see i want to add a component (another script : DragViaMouse) to my newly added Gameobject (which is the .obj-asset)
the script i want to add is following:
public class DragViaMouse : MonoBehaviour
{
public Vector3 screenSpace;
public Vector3 offset;
public float speed = 100;
Vector3 dist;
Vector3 startPos;
float posX;
float posZ;
void OnMouseDown()
{
startPos = transform.position;
dist = Camera.main.WorldToScreenPoint(transform.position);
posX = Input.mousePosition.x - dist.x;
posZ = Input.mousePosition.z - dist.z;
}
void OnMouseDrag()
{
float disX = Input.mousePosition.x - posX;
float disY = 0;
float disZ = Input.mousePosition.y - posZ;
Vector3 lastPos = Camera.main.ScreenToWorldPoint(new Vector3(disX, disY, disZ));
transform.position = new Vector3(lastPos.x, startPos.y, lastPos.z);
}
void OnMouseOver()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0)
transform.Rotate(Vector3.up * speed * Time.deltaTime);
if (Input.GetAxis("Mouse ScrollWheel") < 0)
transform.Rotate(-Vector3.up * speed * Time.deltaTime);
if (Input.GetKeyDown("[7]"))
transform.localScale += new Vector3(10f, 0, 0);
if (Input.GetKeyDown("[8]"))
transform.localScale -= new Vector3(10f, 0, 0);
if (Input.GetKeyDown("[4]"))
transform.localScale += new Vector3(0, 10f, 0);
if (Input.GetKeyDown("[5]"))
transform.localScale -= new Vector3(0, 10f, 0);
if (Input.GetKeyDown("[1]"))
transform.localScale += new Vector3(0, 0, 10f);
if (Input.GetKeyDown("[2]"))
transform.localScale -= new Vector3(0, 0, 10f);
}
private void OnCollisionStay(Collision collision)
{
}
}
the Problem i now have is that the asset wont accept my script. i cant use any commands written in the script(dragviamouse). if i try to add the script to a primitive object like a cube or a sphere everything works fine and is changeable. why is that? what am i missing?
What do you mean "the asset won't accept my script"? Do you get an error message? Have you confirmed that the behaviour is not added to the object via the inspector during runtime?