Merge commit '3d2374436c10bab43a85c2177f174fb530f751c4'

This commit is contained in:
Pascal Serrarens 2025-04-24 15:38:56 +02:00
parent 5f30069520
commit 56edf36785
5 changed files with 28 additions and 8 deletions

View File

@ -65,7 +65,7 @@ namespace RoboidControl.Unity {
/// </summary>
protected virtual void Update() {
if (core == null) {
Debug.Log("Core thing is gone, self destruct in 0 seconds...");
// Debug.Log("Core thing is gone, self destruct in 0 seconds...");
Destroy(this);
return;
}
@ -94,7 +94,7 @@ namespace RoboidControl.Unity {
core.nameChanged = false;
}
if (core.hierarchyChanged) {
Debug.Log("Parent changed");
// Debug.Log("Parent changed");
if (core.parent == null)
this.transform.SetParent(null, true);
else

View File

@ -16,6 +16,8 @@ namespace RoboidControl.Unity {
get => (RoboidControl.TouchSensor)base.core;
}
SphereCollider collider = null;
/// <summary>
/// Start the Unity represention
/// </summary>
@ -24,6 +26,7 @@ namespace RoboidControl.Unity {
participant = FindAnyObjectByType<SiteServer>();
SetCoreThing(new RoboidControl.TouchSensor(participant.site));
}
collider = GetComponent<SphereCollider>();
}
/// <summary>
@ -53,11 +56,26 @@ namespace RoboidControl.Unity {
return component;
}
protected override void Update() {
base.Update();
if (collider.radius == 0.01f &&
this.transform.parent != null && this.transform.localPosition.magnitude > 0
) {
collider.radius = Vector3.Distance(this.transform.position, this.transform.parent.position) / 2;
this.transform.position = (this.transform.position + this.transform.parent.position) / 2;
}
}
private void OnTriggerEnter(Collider other) {
if (other.isTrigger)
Debug.Log("Touch?");
if (other.isTrigger) {
Debug.Log($" was trigger {other.name}");
return;
if (this.transform.root == other.transform.root)
}
if (this.transform.root == other.transform.root) {
Debug.Log($" was myself {other.name}");
return;
}
Debug.Log($"*** {this} Touch");
this.coreSensor.touchedSomething = true;

View File

@ -73,7 +73,9 @@ namespace RoboidControl {
if (this.isIsolated == false) {
// Send to all other participants
foreach (Participant participant in Participant.participants) {
//foreach (Participant participant in Participant.participants) {
for (int participantIx = 0; participantIx < Participant.participants.Count; participantIx++) {
Participant participant = Participant.participants[participantIx];
if (participant == null || participant == this)
continue;
@ -112,7 +114,7 @@ namespace RoboidControl {
Console.WriteLine($"Could not find parent [{msg.networkId}/{msg.parentId}]");
}
else {
Console.Write($"Dropped {thing.id}");
// Console.Write($"Dropped {thing.id}");
thing.parent = null;
}
}

View File

@ -90,7 +90,7 @@ namespace RoboidControl {
this.id = thingId;
this.type = thingType;
this.networkId = networkId;
Console.Write($"New thing added to {owner}");
// Console.Write($"New thing added to {owner}");
this.owner.Add(this);
InvokeNewThing(this);
}

View File

@ -37,9 +37,9 @@ namespace RoboidControl {
get { return _touchedSomething; }
set {
if (_touchedSomething != value) {
touchUpdated = true;
_touchedSomething = value;
}
touchUpdated = true;
}
}
private bool touchUpdated = false;