How to make an enemy move randomly in the environment in Unity5?
So, I have this droid hovering in my scene and I want it to move randomly while always looking at me and shoot lasers. I have already got the "always looking at me" part now I have to finish up with the "moving randomly" part. I can however make the droid move towards me but I can't get it how to make it move randomly like, strafing left, right, going up or down, etc WHILE LOOKING AT THE FIRST PERSON CHARACTER i.e. me.
So here's what I have done till now. Please let me know something.
using UnityEngine;
using System.Collections;
public class MotionControl : MonoBehaviour {
public Transform target;
// public Transform myTransform;
public float movespeed = 0.35f;
public int rotationSpeed = 1;
Vector3 startPosition;
// float roamRadius = 20.0f;
// NavMeshAgent nav;
public float width = 5;
private Transform myTransform;
// Use this for initialization
void Start()
{
// player = GameObject.FindGameObjectWithTag("Player");
myTransform = transform;
startPosition = transform.position;
// GameObject go = GameObject.FindGameObjectWithTag("Player");
// target = go.transform;
}
// Update is called once per frame
void Update ()
{
if(target != null) {
transform.LookAt(target);
}
startPosition = transform.position;
// Vector3 randomPt = (Vector3)Random.Range(-1,1);
float distance = Vector3.Distance(target.transform.position, transform.position);
Debug.Log(distance);
float rx = Random.Range(220, 280);
float ry = Random.Range(25, 50);
float rz = Random.Range(220, 280);
Vector3 targetPos = new Vector3(transform.position.x + (rx * width), transform.position.y + ry, transform.position.z + (rx * width));
// Vector3 randomMov = Vector3.MoveTowards(startPosition, targetPos, 1.0f);
//look at target
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(targetPos - myTransform.position), rotationSpeed * Time.deltaTime);
//move towards target
myTransform.position = targetPos * movespeed * Time.deltaTime;
// to make enemy move towards player
// myTransform.position += myTransform.forward * movespeed * Time.deltaTime;
}
}
Comment
Your answer
Follow this Question
Related Questions
How can you do borderlands style random weapons and stat generation? 2 Answers
Choose something randomly based on its grouping 0 Answers
Question about "shuffling" a deck of cards 2 Answers
I'm trying to shuffle an array's order 3 Answers
null array? 0 Answers