Offset for Wheels

This commit is contained in:
Max
2025-06-05 15:17:55 +02:00
parent 12c8272d18
commit 33d954a201
7 changed files with 406 additions and 71 deletions

View File

@@ -19140,7 +19140,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1591058970}
m_Enabled: 0
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
@@ -19233,7 +19233,7 @@ MonoBehaviour:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1591058970}
m_Enabled: 1
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2518c50cb3fc6a6458d4b743c2f69c7d, type: 3}
m_Name:

View File

@@ -9,10 +9,11 @@ public class ChildModel : Model
public List<String> color{ get; set; } // color of the model, used for coloring the model in the editor
public ChildModel(string port, string nameHuman, string nameId, Mesh mesh, Material material, Vector3 offset,
Quaternion rotation, Vector3 scale, List<Port> ports = null)
Quaternion rotation, Vector3 scale, List<Port> ports = null,List<String> color = null)
: base(nameHuman, nameId, mesh, material, offset, rotation, scale, ports)
{
this.Port = port;
this.color = color;
}
public ChildModel(string port, string nameHuman, string nameId, Mesh mesh,
@@ -22,5 +23,6 @@ public class ChildModel : Model
this.Port = port;
this.color = color;
}
}

View File

@@ -87,7 +87,7 @@ public class ModelBehaviour : MonoBehaviour
{
var newChildModel = FindAnyObjectByType<ModelManager>().GetById(id);
_children[childNum].GetComponent<ChildModelBehaviour>().UpdateModel(newChildModel);
Model.Ports[childNum].Apply(_children[childNum].transform);
Model.Ports[childNum].ApplySoft(_children[childNum].transform);
}
/// <summary>

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
/// <summary>
@@ -7,6 +8,74 @@ using UnityEngine;
/// </summary>
public class ModelList
{
public static readonly List<ChildModel> ChildModels = new List<ChildModel>()
{
new ChildModel(
Definitions.PORT_BIKE_DRIVER,
"Bacteria",
"bacteria",
Resources.Load<Mesh>("Plagues/Mesh/bacteria"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
Definitions.PORT_BIKE_DRIVER,
"ICBM",
"nuke",
Resources.Load<Mesh>("Plagues/Mesh/Nuke"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
Definitions.PORT_BIKE_WHEEL,
"30\" Rim",
"bike30inchAlloy",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
"bikePedalR",
"Pedal (right)",
"bikePedalR",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
"bikePedalL",
"Pedal (left)",
"bikePedalL",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel( //das modell hat im modell selbst n offset, das ist hier das probem, deswegen machst du das unten auch bei den childmodels auc mit dem offset, du musst das kdann auch hier adden
Definitions.PORT_ERLBACH_Wheel,
"Wheel",
"rad20",
Resources.Load<Mesh>($"Model/ERLbach/02.01.05.0000-Rad_5Speichen"),
Resources.Load<Material>($"Material/Default"),
new Vector3(60f, 65f, -15f), // offset to the port
Quaternion.Euler(0, 0, 0),
new Vector3(1f, 1f, 1f),
null,
new List<string>
{
"yellow",
"black",
"white",
"red",
"blue",
"green",
"orange",
"purple",
"pink",
}
),
};
public static readonly List<BaseModel> BaseModels = new List<BaseModel>()
{
new BaseModel(
@@ -136,69 +205,6 @@ public class ModelList
}
)
};
public static readonly List<ChildModel> ChildModels = new List<ChildModel>()
{
new ChildModel(
Definitions.PORT_BIKE_DRIVER,
"Bacteria",
"bacteria",
Resources.Load<Mesh>("Plagues/Mesh/bacteria"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
Definitions.PORT_BIKE_DRIVER,
"ICBM",
"nuke",
Resources.Load<Mesh>("Plagues/Mesh/Nuke"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
Definitions.PORT_BIKE_WHEEL,
"30\" Rim",
"bike30inchAlloy",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
"bikePedalR",
"Pedal (right)",
"bikePedalR",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
"bikePedalL",
"Pedal (left)",
"bikePedalL",
Resources.Load<Mesh>("Plagues/Mesh/Hex"),
Resources.Load<Material>($"Material/Default"),
null
),
new ChildModel(
Definitions.PORT_ERLBACH_Wheel,
"Wheel",
"rad20",
Resources.Load<Mesh>($"Model/ERLbach/02.01.05.0000-Rad_5Speichen"),
Resources.Load<Material>($"Material/Default"),
null,
new List<string>
{
"yellow",
"black",
"white",
"red",
"blue",
"green",
"orange",
"purple",
"pink",
}
)
};
static ModelList()
{
@@ -253,6 +259,37 @@ public class ModelList
Resources.Load<Material>($"Material/AluminiumPolished"),
Resources.Load<Material>($"Material/AluminiumPolished"),
},
new Vector3[7]
{
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
},
new Quaternion[7]
{
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
new Quaternion(0,0,0,0),
},
new Vector3[7] // scale
{
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
},
new List<Port>[7] // ports
{
null,
@@ -677,6 +714,299 @@ public class ModelList
Resources.Load<Material>($"Material/Universal"), // grill outline
Resources.Load<Material>($"Material/MetalMesh"), // grill mesh
}, new Vector3[94] // positions
{
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(-60,-65,15), // wheel RH
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
new Vector3(0,0,0),
},
new Quaternion[94] // rotations
{
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
Quaternion.identity,
},
new Vector3[94] // scales
{
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
new Vector3(1,1,1),
},
new List<Port>[94] // ports
{

View File

@@ -165,10 +165,8 @@ public class ModelManager : MonoBehaviour
{
return port;
}
}
}
Debug.LogWarning($"Kein Port für das ChildModel {childModel.NameId} gefunden.");
return null;
}

View File

@@ -18,6 +18,10 @@ public class Port
target.localScale = _scale;
}
public void ApplySoft(Transform target)
{
target.localPosition += _position;
}
public Port(string name, Vector3 position, string defaultId, bool chooseable = true, Vector3 direction = default)
{
PortID = name;

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
/// <summary>
@@ -8,7 +9,7 @@ using UnityEngine;
public class ModelLoader
{
public static void LoadChildModelsFromPackedModel(List<ChildModel> appendList, string[] port, string[] nameHuman,
string[] nameId, Mesh[] meshes, Material[] mats, List<Port>[] ports,List<String>[] colors = null, int fromMesh = 0, int toMesh = -1)
string[] nameId, Mesh[] meshes, Material[] mats,Vector3[] offset,Quaternion[] rotation, Vector3[] scale, List<Port>[] ports,List<String>[] colors = null, int fromMesh = 0, int toMesh = -1)
{
Debug.Log("LoadChildModels " + fromMesh + " to " + toMesh + " from " + mats.Length + " meshes");
if (toMesh == -1)
@@ -18,7 +19,7 @@ public class ModelLoader
for (int i = 0; i < toMesh - fromMesh; i++)
{
Debug.Log($"{i}. {nameId[i]}:{nameHuman[i]} with {port.Length} ports");
appendList.Add(new ChildModel(port[i], nameHuman[i], nameId[i], meshes[fromMesh + i], mats[i], ports[i], colors[i]));
appendList.Add(new ChildModel(port[i], nameHuman[i], nameId[i], meshes[fromMesh + i], mats[i],offset[i], rotation[i], scale[i], ports[i], colors[i]));
}
}