[ RandomPosition.cs ]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RandomPosition : MonoBehaviour {
// Use this for initialization
void Start () {
StartCoroutine(RePostionWithDelay());
}
IEnumerator RePostionWithDelay()
{
while( true )
{
SetRandomPosition();
yield return new WaitForSeconds(5);
}
}
void SetRandomPosition()
{
float x = Random.Range(-5.0f, 5.0f);
float z = Random.Range(-5.0f, 5.0f);
Debug.Log("X, Z : " + x.ToString("F2") + ", " + z.ToString("F2"));
transform.position = new Vector3(x, 0.0f, z);
}
// Update is called once per frame
void Update () {
}
}
[ LookMoveTo01.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookMoveTo : MonoBehaviour {
public GameObject ground;
Transform camera;
// Use this for initialization
void Start () {
camera = Camera.main.transform;
}
// Update is called once per frame
void Update () {
//Transform camera = Camera.main.transform;
Ray ray;
RaycastHit hit;
GameObject hitObject;
Debug.DrawRay(camera.position, camera.rotation * Vector3.forward * 100.0f);
ray = new Ray(camera.position, camera.rotation * Vector3.forward * 100.0f);
if(Physics.Raycast(ray, out hit))
{
hitObject = hit.collider.gameObject;
if(hitObject == ground)
{
Debug.Log("Hit (x,y,z): " + hit.point.ToString("F2"));
transform.position = hit.point;
}
}
}
}
[ LookMoveTo02.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LookMoveTo : MonoBehaviour {
public GameObject ground;
Transform camera;
// Use this for initialization
void Start () {
camera = Camera.main.transform;
}
// Update is called once per frame
void Update () {
//Transform camera = Camera.main.transform;
Ray ray;
RaycastHit[] hits;
GameObject hitObject;
Debug.DrawRay(camera.position, camera.rotation * Vector3.forward * 100.0f);
ray = new Ray(camera.position, camera.rotation * Vector3.forward * 100.0f);
hits = Physics.RaycastAll(ray);
for (int i = 0; i< hits.Length; i++)
{
RaycastHit hit = hits[i];
hitObject = hit.collider.gameObject;
if(hitObject == ground)
{
Debug.Log("Hit (x,y,z): " + hit.point.ToString("F2"));
transform.position = hit.point;
}
}
}
}