Strona wykorzystuje pliki cookies, jeśli wyrażasz zgodę na używanie cookies, zostaną one zapisane w pamięci twojej przeglądarki. W przypadku nie wyrażenia zgody nie jesteśmy w stanie zagwarantować pełnej funkcjonalności strony!
English French German Italian Portuguese Russian Spanish

Zobacz również

Gościmy

Odwiedza nas 93 gości oraz 0 użytkowników.

Licznik graczy

534013
Dziś
Wczoraj
W tygodniu
Do ubiegłego tygodnia
W tym miesiącu
Zeszły miesiąc
Wszystkich
922
2269
16148
502792
54255
80025
534013

Twoje IP: 54.92.158.65
Server Time: 2017-09-25 09:50:40

Automatyczna inteligencja C#

Ocena użytkowników:  / 0
SłabyŚwietny 

Poniżej znajduje się kod skryptu C#  automatycznej inteligencji dla przeciwników w grze Bastion. Przeciwnik wykrywa gracza gdy ten zbliży się na ustawioną odległość, podąża za graczem utrzymując ustalony w inspektorze dystans. Część kodu odpowiada za pozycje przeciwników by nie nakładały się na siebie przy ich większej liczbie:

using UnityEngine;
using System.Collections;

public class AutInt: MonoBehaviour {
public Transform target;
public int moveSpeed;
public int rotationSpeed;
public int maxDistance;

private Transform myTransform;

void Awake() {
myTransform = transform;
}

void Update () {
//Debug.DrawLine(target.position, myTransform.position, Color.yellow);

//Patrz na target
myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
//Debug.Log(Vector3.Distance(target.position, myTransform.position));
if((Vector3.Distance(target.position, myTransform.position) > maxDistance)){//&( Vector3.Distance(GameObject.FindGameObjectWithTag("Wrog").transform.position ,myTransform.position)>100) ){
//Move towards target
myTransform.position += myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
//Przeciwnik wykrywa przeszkode
if (Physics.Raycast(myTransform.position, transform.TransformDirection(Vector3.forward), 50)){
myTransform.position -= myTransform.transform.forward * moveSpeed * Time.deltaTime;
}
}
}