Skip to content

[ParticleEmitter3D] Issue short descriptionfjgg #1972

@aryan0000kumar77-ship-it

Description

Is there an existing issue for this?

Enter the name of the extension

sgshdgysyfywydyd

Describe the bug of the extension

using UnityEngine;
using System.Collections.Generic;

public class AISurvivalGame : MonoBehaviour
{
// ===== PLAYER SETTINGS =====
public float playerSpeed = 5f;
public int playerHealth = 100;

// ===== AI SETTINGS =====
public Transform aiEnemy;
public float aiSpeed = 3f;
public int aiHealth = 100;

// ===== AI MEMORY =====
private List<Vector3> playerPositions = new List<Vector3>();
private float attackTimer;
private float aiDecisionTime = 2f;

// ===== INTERNAL =====
private Vector3 aiTarget;
private bool aggressiveMode = false;

void Start()
{
    aiTarget = transform.position;
}

void Update()
{
    PlayerMovement();
    RecordPlayerData();
    AILogic();
    AIMovement();
}

// ================= PLAYER MOVEMENT =================
void PlayerMovement()
{
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");

    Vector3 move = new Vector3(h, 0, v);
    transform.Translate(move * playerSpeed * Time.deltaTime);
}

// ================= PLAYER DATA RECORD =================
void RecordPlayerData()
{
    if (playerPositions.Count < 50)
    {
        playerPositions.Add(transform.position);
    }
    else
    {
        playerPositions.RemoveAt(0);
        playerPositions.Add(transform.position);
    }

    attackTimer += Time.deltaTime;
}

// ================= AI BRAIN =================
void AILogic()
{
    aiDecisionTime -= Time.deltaTime;

    if (aiDecisionTime <= 0)
    {
        aiDecisionTime = 2f;

        // AI observes player behavior
        float averageDistance = 0f;
        foreach (Vector3 pos in playerPositions)
        {
            averageDistance += Vector3.Distance(pos, aiEnemy.position);
        }
        averageDistance /= playerPositions.Count;

        // AI decision making
        if (averageDistance < 5f)
        {
            aggressiveMode = true;
        }
        else
        {
            aggressiveMode = false;
        }

        // AI sets new target
        aiTarget = aggressiveMode ? transform.position : GetRandomPosition();
    }
}

// ================= AI MOVEMENT =================
void AIMovement()
{
    aiEnemy.position = Vector3.MoveTowards(
        aiEnemy.position,
        aiTarget,
        aiSpeed * Time.deltaTime
    );
}

// ================= RANDOM ESCAPE =================
Vector3 GetRandomPosition()
{
    return new Vector3(
        Random.Range(-6f, 6f),
        0,
        Random.Range(-6f, 6f)
    );
}

// ================= DAMAGE SYSTEM =================
void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "AI")
    {
        playerHealth -= 10;
        Debug.Log("Player Hit! Health: " + playerHealth);
    }
}

}

Steps to reproduce

using UnityEngine;
using System.Collections.Generic;

public class AISurvivalGame : MonoBehaviour
{
// ===== PLAYER SETTINGS =====
public float playerSpeed = 5f;
public int playerHealth = 100;

// ===== AI SETTINGS =====
public Transform aiEnemy;
public float aiSpeed = 3f;
public int aiHealth = 100;

// ===== AI MEMORY =====
private List<Vector3> playerPositions = new List<Vector3>();
private float attackTimer;
private float aiDecisionTime = 2f;

// ===== INTERNAL =====
private Vector3 aiTarget;
private bool aggressiveMode = false;

void Start()
{
    aiTarget = transform.position;
}

void Update()
{
    PlayerMovement();
    RecordPlayerData();
    AILogic();
    AIMovement();
}

// ================= PLAYER MOVEMENT =================
void PlayerMovement()
{
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");

    Vector3 move = new Vector3(h, 0, v);
    transform.Translate(move * playerSpeed * Time.deltaTime);
}

// ================= PLAYER DATA RECORD =================
void RecordPlayerData()
{
    if (playerPositions.Count < 50)
    {
        playerPositions.Add(transform.position);
    }
    else
    {
        playerPositions.RemoveAt(0);
        playerPositions.Add(transform.position);
    }

    attackTimer += Time.deltaTime;
}

// ================= AI BRAIN =================
void AILogic()
{
    aiDecisionTime -= Time.deltaTime;

    if (aiDecisionTime <= 0)
    {
        aiDecisionTime = 2f;

        // AI observes player behavior
        float averageDistance = 0f;
        foreach (Vector3 pos in playerPositions)
        {
            averageDistance += Vector3.Distance(pos, aiEnemy.position);
        }
        averageDistance /= playerPositions.Count;

        // AI decision making
        if (averageDistance < 5f)
        {
            aggressiveMode = true;
        }
        else
        {
            aggressiveMode = false;
        }

        // AI sets new target
        aiTarget = aggressiveMode ? transform.position : GetRandomPosition();
    }
}

// ================= AI MOVEMENT =================
void AIMovement()
{
    aiEnemy.position = Vector3.MoveTowards(
        aiEnemy.position,
        aiTarget,
        aiSpeed * Time.deltaTime
    );
}

// ================= RANDOM ESCAPE =================
Vector3 GetRandomPosition()
{
    return new Vector3(
        Random.Range(-6f, 6f),
        0,
        Random.Range(-6f, 6f)
    );
}

// ================= DAMAGE SYSTEM =================
void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "AI")
    {
        playerHealth -= 10;
        Debug.Log("Player Hit! Health: " + playerHealth);
    }
}

}

GDevelop platform

Mobile

GDevelop version

gdgfhfhshfhjd

Platform info

Details

OS (e.g. Windows, Linux, macOS, Android, iOS)

OS Version (e.g. Windows 10, macOS 10.15)

Browser(For Web) (e.g. Chrome, Firefox, Safari)

Device(For Mobile) (e.g. iPhone 12, Samsung Galaxy S21)

Additional context

using UnityEngine;
using System.Collections.Generic;

public class AISurvivalGame : MonoBehaviour
{
// ===== PLAYER SETTINGS =====
public float playerSpeed = 5f;
public int playerHealth = 100;

// ===== AI SETTINGS =====
public Transform aiEnemy;
public float aiSpeed = 3f;
public int aiHealth = 100;

// ===== AI MEMORY =====
private List<Vector3> playerPositions = new List<Vector3>();
private float attackTimer;
private float aiDecisionTime = 2f;

// ===== INTERNAL =====
private Vector3 aiTarget;
private bool aggressiveMode = false;

void Start()
{
    aiTarget = transform.position;
}

void Update()
{
    PlayerMovement();
    RecordPlayerData();
    AILogic();
    AIMovement();
}

// ================= PLAYER MOVEMENT =================
void PlayerMovement()
{
    float h = Input.GetAxis("Horizontal");
    float v = Input.GetAxis("Vertical");

    Vector3 move = new Vector3(h, 0, v);
    transform.Translate(move * playerSpeed * Time.deltaTime);
}

// ================= PLAYER DATA RECORD =================
void RecordPlayerData()
{
    if (playerPositions.Count < 50)
    {
        playerPositions.Add(transform.position);
    }
    else
    {
        playerPositions.RemoveAt(0);
        playerPositions.Add(transform.position);
    }

    attackTimer += Time.deltaTime;
}

// ================= AI BRAIN =================
void AILogic()
{
    aiDecisionTime -= Time.deltaTime;

    if (aiDecisionTime <= 0)
    {
        aiDecisionTime = 2f;

        // AI observes player behavior
        float averageDistance = 0f;
        foreach (Vector3 pos in playerPositions)
        {
            averageDistance += Vector3.Distance(pos, aiEnemy.position);
        }
        averageDistance /= playerPositions.Count;

        // AI decision making
        if (averageDistance < 5f)
        {
            aggressiveMode = true;
        }
        else
        {
            aggressiveMode = false;
        }

        // AI sets new target
        aiTarget = aggressiveMode ? transform.position : GetRandomPosition();
    }
}

// ================= AI MOVEMENT =================
void AIMovement()
{
    aiEnemy.position = Vector3.MoveTowards(
        aiEnemy.position,
        aiTarget,
        aiSpeed * Time.deltaTime
    );
}

// ================= RANDOM ESCAPE =================
Vector3 GetRandomPosition()
{
    return new Vector3(
        Random.Range(-6f, 6f),
        0,
        Random.Range(-6f, 6f)
    );
}

// ================= DAMAGE SYSTEM =================
void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "AI")
    {
        playerHealth -= 10;
        Debug.Log("Player Hit! Health: " + playerHealth);
    }
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    ⚠ Issue with an extensionAn issue with an extension that is already on the extension store

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions