Журнал отладки не работает с подсценой объекта (Unity, C#)C#

Место общения программистов C#
Ответить
Anonymous
 Журнал отладки не работает с подсценой объекта (Unity, C#)

Сообщение Anonymous »

Итак, я работаю над проектом, в котором есть несколько динамических объектов тумана, и я хотел попробовать использовать для него DOTS, по сути, это тонна маленьких спрайтов, которые сжимаются при приближении игрока. У меня все это работает нормально, и теперь мне нужно обновить объекты с учетом позиции игрока.
Я попробовал напрямую передать преобразование игрока, но это не сработало, поэтому я решил при передаче вектора2. Однако мне не удалось обновить этот вектор2 в авторском сценарии или даже в файле debug.log. Думаю, это связано с тем, что объект находится в подсцене, или с тем, что он является объектом, и теперь я ищу исправление.< /p>
FogAuthoring.cs
using System.Collections;
using System.Collections.Generic;

using Unity.Entities;

using Unity.Mathematics;

using UnityEngine;

public class FogAuthoring : MonoBehaviour

{

public float LerpSpeed;

public float TargetScale;

public float2 PlayerPosition;

private Transform _player;

private void Start()

{

_player = GameObject.FindWithTag("Player").transform;

Debug.Log("A");

}

private void Update()

{

PlayerPosition = new float2(_player.position.x, _player.position.y);

Debug.Log("B");

}

private class Baker : Baker

{

public override void Bake(FogAuthoring authoring)

{

Entity entity = GetEntity(TransformUsageFlags.Dynamic);

AddComponent(entity, new FogData

{

LerpSpeed = authoring.LerpSpeed,

TargetScale = authoring.TargetScale,

PlayerPosition = authoring.PlayerPosition

});

}

}

}

public struct FogData : IComponentData

{

public float LerpSpeed;

public float TargetScale;

public float2 PlayerPosition;

}

FogControllerDOTS.cs
using System.Collections
using System.Collections.Generic;
using UnityEngine;

using Unity.Burst;

using Unity.Entities;

using Unity.Transforms;

using Unity.Jobs;

public partial struct FogControllerDOTS : ISystem

{

public const float distThreshold = 5;

public void OnCreate(ref SystemState state)

{

state.RequireForUpdate();

}

[BurstCompile]

public void OnUpdate(ref SystemState state)

{

/*

foreach ((RefRW localTransform, RefRO fogData) in SystemAPI.Query())

{

float currentScale = localTransform.ValueRO.Scale;

float targetScale;

if (Vector2.Distance(new Vector2(localTransform.ValueRO.Position.x, localTransform.ValueRO.Position.y), fogData.ValueRO.PlayerPosition)

Подробнее здесь: https://stackoverflow.com/questions/788 ... ne-unity-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»