handzlikchris / handzlikchris/FastScriptReload

Swapping the order of field declarations lead to an unexpected results.

Open
#197 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2.2k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

When script
``` C#
using System.Collections;
using System.Collections.Generic;
using Unity.Mathematics;
using UnityEngine;

public class Test : MonoBehaviour
{
int i1;
float i2;

void Start()
{
i1 = 1;
i2 = 1.5f;
}

void Update()
{
Debug.Log(i1);
}
}
```
swap the declaration positions of i1 and i2 and reload to
``` C#
using System.Collections;
using System.Collections.Generic;
using Unity.Mathematics;
using UnityEngine;

public class Test : MonoBehaviour
{
float i2;
int i1;

void Start()
{
i1 = 1;
i2 = 1.5f;
}

void Update()
{
Debug.Log(i1);
}
}
```
expected output was 1, but the actual output was 1069547520 (this is the value of a 1.5 as an integer in binary).

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the issue in Unity with the C# script and swapped field declarations shown in the report. Inspect the hot-reload field restoration path, focusing on whether fields are matched by declaration order; done means reloading preserves i1 as 1 and does not interpret i2's bits as an integer.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, unity
Domain
devtools, game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.