-
Notifications
You must be signed in to change notification settings - Fork 0
/
Auto move Enemy_script
45 lines (40 loc) · 1.13 KB
/
Auto move Enemy_script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AutoMoveEntity : MonoBehaviour
{
private Vector3 target;
private Terrain myTerrain;
private float speed;
void Start()
{
if(speed < 0)
{
speed = Random.Range(2.0f, 4.0f);
}
myTerrain=Terrain.activeTerrain;
target=ReturnTarget();
// Update is called once per frame
void Update()
{
if(transform.position != target)
{
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
}
else
{
target = ReturnTarget();
}
}
Vector3 ReturnTarget()
{
float x = Random.Range(transform.localScale.x/2, myTerrain.terrainData.size.x - transform.localScale.x/2);
float z = Random.Range(transform.localScale.z/2, myTerrain.terrainData.size.z - transform.localScale.z/2);
Vector3 move=new Vector3(x, transform.localScale.y/2, z);
return move;
}
private void OnCollisionEnter(Collision other)
{
target=ReturnTarget();
}
}