【发布时间】:2014-06-09 11:21:36
【问题描述】:
此代码适用于统一 2D 游戏中的敌人 AI。现在敌人静止不动,但如果我同时改变 IF,s 那么敌人正在向右或向左移动,仅此而已。
我正在尝试制作敌人的 AI 巡逻系统。其他都搞定了(敌人触发系统和追敌玩家),但只有这个巡逻部分不起作用。
我在 javascript 中有一个工作巡逻代码,但我需要它在 C# 中,所以所有内容都将在一个 c# 脚本文件中。
using UnityEngine;
using System.Collections;
public class VastaneAI : MonoBehaviour {
protected Vector3 velocity;
public Transform _transform;
public float distance = 1f;
public float speed = 1f;
Vector3 _originalPosition;
public void Start () {
_originalPosition = gameObject.transform.position;
_transform = GetComponent<Transform>();
velocity = new Vector3(speed,0,0);
_transform.Translate ( velocity.x*Time.deltaTime,0,0);
}
public void Update(){
if (transform.position.x < _originalPosition.x-distance) {
Debug.Log(_originalPosition.x-distance+"Left side");
_transform.Translate ( (1*velocity.x)*Time.deltaTime,0,0);
}
if (transform.position.x > _originalPosition.x+distance) {
Debug.Log(_originalPosition.x+distance+"right side");
_transform.Translate ( -velocity.x*Time.deltaTime,0,0);
//velocity = velocity*-1;
}
}
}
【问题讨论】:
-
那么问题出在哪里?