Ver código fonte

Генератор меша

Andrey Ushakov 2 semanas atrás
pai
commit
614563cd3a

+ 131 - 4
SpaceCraft.Unity/Assets/_Project/Scenes/Game.unity

@@ -211,8 +211,8 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 330585543}
   serializedVersion: 2
-  m_LocalRotation: {x: -0.13087028, y: -0.3116444, z: 0.043375697, w: -0.9401432}
-  m_LocalPosition: {x: -1.8865995, y: 15.9433, z: -3.8676996}
+  m_LocalRotation: {x: 0.2293313, y: 0.2598835, z: -0.06366815, w: 0.93584937}
+  m_LocalPosition: {x: -20.203243, y: 21.4536, z: -44.611008}
   m_LocalScale: {x: 1.9811002, y: 1.9810998, z: 1.9811}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -421,7 +421,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 2147483647
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!154 &713172054
 TerrainCollider:
   m_ObjectHideFlags: 0
@@ -906,6 +906,132 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0, y: 0}
+--- !u!1 &1579309476
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1579309480}
+  - component: {fileID: 1579309479}
+  - component: {fileID: 1579309478}
+  - component: {fileID: 1579309477}
+  - component: {fileID: 1579309481}
+  m_Layer: 0
+  m_Name: Plane
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1579309477
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579309476}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1e97fde5b479ad744928cbb9fb6b22a2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: '::'
+--- !u!33 &1579309478
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579309476}
+  m_Mesh: {fileID: 0}
+--- !u!23 &1579309479
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579309476}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RayTracingAccelStructBuildFlagsOverride: 0
+  m_RayTracingAccelStructBuildFlags: 1
+  m_SmallMeshCulling: 1
+  m_ForceMeshLod: -1
+  m_MeshLodSelectionBias: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: bdf04b1dd42b18241a6b974938d5e840, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_GlobalIlluminationMeshLod: 0
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_MaskInteraction: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!4 &1579309480
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579309476}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -10.01, y: 0.09, z: -19.95}
+  m_LocalScale: {x: 10, y: 10, z: 10}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!64 &1579309481
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1579309476}
+  m_Material: {fileID: 0}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_LayerOverridePriority: 0
+  m_IsTrigger: 0
+  m_ProvidesContacts: 0
+  m_Enabled: 1
+  serializedVersion: 5
+  m_Convex: 0
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 0}
 --- !u!1 &1606415197
 GameObject:
   m_ObjectHideFlags: 0
@@ -946,7 +1072,7 @@ Transform:
   m_GameObject: {fileID: 1606415197}
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
-  m_LocalPosition: {x: 6.93786, y: 0, z: 15.60765}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -1508,3 +1634,4 @@ SceneRoots:
   - {fileID: 1818329330}
   - {fileID: 1073386204}
   - {fileID: 1606415199}
+  - {fileID: 1579309480}

+ 55 - 0
SpaceCraft.Unity/Assets/_Project/Scripts/Game/PlaneGenerator.cs

@@ -0,0 +1,55 @@
+using UnityEngine;
+
+public class PlaneGenerator : MonoBehaviour
+{
+    private const int pqsResolution = 16;
+
+    // Start is called once before the first execution of Update after the MonoBehaviour is created
+    void Start()
+    {
+        var vertices = new Vector3[(pqsResolution + 1) * (pqsResolution + 1)];
+        Vector2[] uv = new Vector2[(pqsResolution + 1) * (pqsResolution + 1)];
+        var triangles = new int[(pqsResolution) * (pqsResolution) * 6];
+
+        for (int x = 0, vertex = 0; x < pqsResolution + 1; x++)
+        {
+            for (int z = 0; z < pqsResolution + 1; z++, vertex++)
+            {
+                vertices[vertex] = new Vector3(x, 0, z);
+                uv[vertex] = new Vector2((float)x / pqsResolution, (float)z / pqsResolution);
+            }
+        }
+
+        int triangle = 0;
+        for (int x = 1, vertex = 0; x < pqsResolution + 1; x++, vertex++)
+        {
+            for (int z = 1; z < pqsResolution + 1; z++, vertex++)
+            {
+                triangles[triangle] = vertex;
+                triangles[triangle + 1] = vertex + pqsResolution + 2;
+                triangles[triangle + 2] = vertex + pqsResolution + 1;
+
+                triangles[triangle + 3] = vertex;
+                triangles[triangle + 4] = vertex + 1;
+                triangles[triangle + 5] = vertex + pqsResolution + 2;
+
+                triangle += 6;
+            }
+        }
+
+        var mesh = GetComponent<MeshFilter>();
+        mesh.mesh.vertices = vertices;
+        mesh.mesh.triangles = triangles;
+        mesh.mesh.uv = uv;
+
+        GetComponent<MeshCollider>().sharedMesh = mesh.mesh;
+        mesh.mesh.RecalculateBounds();
+        mesh.mesh.RecalculateNormals();
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+}

+ 2 - 0
SpaceCraft.Unity/Assets/_Project/Scripts/Game/PlaneGenerator.cs.meta

@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 1e97fde5b479ad744928cbb9fb6b22a2

+ 1 - 2
SpaceCraft.Unity/Assets/_Project/Scripts/Game/Rocket/Engine.cs

@@ -26,8 +26,7 @@ public class Engine : MonoBehaviour
         if (lever != 0)
         {
             var newLever = rocketData.ThrustLever + lever * rocketData.thrustLeverStep * Time.deltaTime;
-            newLever = Math.Min(1, newLever);
-            newLever = Math.Max(0, newLever);
+            newLever = Mathf.Clamp(newLever, 0, 1);
             rocketData.SetThrustLever(newLever);
         }
     }