Да поможет тебе сила, друг мой. Это C#, называй RayObjCreator.
Цепляй на камеру. И не забудь в Инспекторе скрипта вставить туда объект который ставить будешь - нап. префаб куба.
Code
using UnityEngine;
using System.Collections;
public class RayObjCreator : MonoBehaviour {
public GameObject tilePrefab;
public GameObject light;
private Ray ray;
private RaycastHit hitElement;
private float size;
// Use this for initialization
void Start () {
size = tilePrefab.transform.localScale.x;
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0)) {
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(ray, out hitElement, Mathf.Infinity, 1);
if (hitElement.transform != null) {
Instantiate(tilePrefab,hitElement.transform.position + hitElement.normal * size,new Quaternion(0,0,0,0));
}
} else if (Input.GetMouseButtonDown(1)) {
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(ray, out hitElement, Mathf.Infinity, 1);
if (hitElement.transform != null) {
Destroy(hitElement.transform.gameObject);
}
} else if (Input.GetMouseButtonDown(3)) {
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Physics.Raycast(ray, out hitElement, Mathf.Infinity, 1);
if (hitElement.transform != null) {
Instantiate(light,hitElement.transform.position + hitElement.normal * size,new Quaternion(0,0,0,0));
}
}
}
}