mirror of
https://github.com/ConjureETS/PixelSphinx.git
synced 2026-03-24 02:20:58 +00:00
Merge branch 'master' of https://github.com/ETSConjure/PixelSphinx
This commit is contained in:
commit
82609a582b
99
Assets/Prefabs/WedgePrefab00.prefab
Normal file
99
Assets/Prefabs/WedgePrefab00.prefab
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &152938
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 4
|
||||||
|
m_Component:
|
||||||
|
- 4: {fileID: 427432}
|
||||||
|
- 212: {fileID: 21228928}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: WedgePrefab
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!1 &170328
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
serializedVersion: 4
|
||||||
|
m_Component:
|
||||||
|
- 4: {fileID: 411762}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: WedgePrefab00
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &411762
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 170328}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 427432}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
--- !u!4 &427432
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 152938}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 1.975, y: 0.004, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 411762}
|
||||||
|
m_RootOrder: 0
|
||||||
|
--- !u!212 &21228928
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
m_PrefabParentObject: {fileID: 0}
|
||||||
|
m_PrefabInternal: {fileID: 100100000}
|
||||||
|
m_GameObject: {fileID: 152938}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_SubsetIndices:
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_UseLightProbes: 0
|
||||||
|
m_ReflectionProbeUsage: 0
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 967af79000cf76b4287a112b4e30cbea, type: 3}
|
||||||
|
m_Color: {r: 0.78676474, g: 0.12727074, b: 0.12727074, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
--- !u!1001 &100100000
|
||||||
|
Prefab:
|
||||||
|
m_ObjectHideFlags: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications: []
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_ParentPrefab: {fileID: 0}
|
||||||
|
m_RootGameObject: {fileID: 170328}
|
||||||
|
m_IsPrefabParent: 1
|
||||||
8
Assets/Prefabs/WedgePrefab00.prefab.meta
Normal file
8
Assets/Prefabs/WedgePrefab00.prefab.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0b78da08dfa398840862539a74cc2377
|
||||||
|
timeCreated: 1460115450
|
||||||
|
licenseType: Pro
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -26,10 +26,10 @@ public class PlanetManager : MonoBehaviour
|
|||||||
|
|
||||||
|
|
||||||
//float angle = i * Mathf.PI * 2 / NbCartiers * 360;
|
//float angle = i * Mathf.PI * 2 / NbCartiers * 360;
|
||||||
var wedgePos = GetPlanetCoordinatesFromPlayerXY(debutAngleTheta, 0);
|
//var wedgePos = GetPlanetCoordinatesFromPlayerXY(debutAngleTheta, 0);
|
||||||
wedgePos.x -= 8/ Mathf.PI * Mathf.Cos(debutAngleTheta * Mathf.PI / 180);
|
// wedgePos.x -= Mathf.Cos(debutAngleTheta * Mathf.PI / 180);
|
||||||
wedgePos.y -= 8/ Mathf.PI * Mathf.Sin(debutAngleTheta * Mathf.PI / 180);
|
//wedgePos.y -= Mathf.Sin(debutAngleTheta * Mathf.PI / 180);
|
||||||
var obj = Instantiate(WedgePrefab, wedgePos, Quaternion.Euler(0, 0, debutAngleTheta));
|
var obj = Instantiate(WedgePrefab, new Vector3(0.0f,0.0f, 0.0f), Quaternion.Euler(0, 0, debutAngleTheta));
|
||||||
obj.name = "wedge_" + i;
|
obj.name = "wedge_" + i;
|
||||||
w.sprite = GameObject.Find(obj.name);
|
w.sprite = GameObject.Find(obj.name);
|
||||||
wedges.Add(w); //pushes at end.
|
wedges.Add(w); //pushes at end.
|
||||||
@ -54,56 +54,79 @@ public class PlanetManager : MonoBehaviour
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void PushWedge(float thetaPlayerX)
|
public void PushWedge(float thetaPlayerX)
|
||||||
{
|
{
|
||||||
var index = GetWedgeIndex(thetaPlayerX);
|
var index = GetWedgeIndex(thetaPlayerX);
|
||||||
var w = wedges[index];
|
var w = wedges[index];
|
||||||
|
|
||||||
|
w.offset = w.offset - 0.25f;
|
||||||
|
if (w.offset < 0.5f)
|
||||||
w.offset = w.offset - 0.5f;
|
w.offset = 0.5f;
|
||||||
if (w.offset < -1.0f)
|
|
||||||
w.offset = -1.0f;
|
|
||||||
|
|
||||||
var angle = w.tMin; //w.tMax - TailleCartiersEnDegres/2;
|
|
||||||
|
|
||||||
var normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
|
||||||
normalPos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180);
|
|
||||||
normalPos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180);
|
|
||||||
|
|
||||||
var wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
|
||||||
wedgePos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Cos(angle * Mathf.PI / 180);
|
|
||||||
wedgePos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Sin(angle * Mathf.PI / 180);
|
|
||||||
|
|
||||||
|
|
||||||
w.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime);
|
|
||||||
|
|
||||||
///push back l'opposée
|
|
||||||
var indexOppose = GetWedgeOpposé(index);
|
|
||||||
var v = wedges[indexOppose];
|
|
||||||
|
|
||||||
v.offset = v.offset + 0.5f;
|
|
||||||
if (v.offset > 1.0f)
|
|
||||||
v.offset = 1.0f;
|
|
||||||
|
|
||||||
angle = v.tMin; //w.tMax - TailleCartiersEnDegres/2;
|
|
||||||
|
|
||||||
normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
|
||||||
normalPos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180);
|
|
||||||
normalPos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180);
|
|
||||||
|
|
||||||
wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
|
||||||
wedgePos.x -= 8 / Mathf.PI * Mathf.Cos(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Cos(angle * Mathf.PI / 180);
|
|
||||||
wedgePos.y -= 8 / Mathf.PI * Mathf.Sin(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Sin(angle * Mathf.PI / 180);
|
|
||||||
|
|
||||||
|
|
||||||
v.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime);
|
w.sprite.transform.localScale = new Vector3(w.offset, w.offset, 1);
|
||||||
|
|
||||||
|
//push back l'opposée
|
||||||
|
var indexOppose = GetWedgeOpposé(index);
|
||||||
|
var v = wedges[indexOppose];
|
||||||
|
|
||||||
|
v.offset = v.offset + 0.25f;
|
||||||
|
if (v.offset > 1.5f)
|
||||||
|
v.offset = 1.5f;
|
||||||
|
|
||||||
|
v.sprite.transform.localScale = new Vector3(v.offset, v.offset, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//public void PushWedge(float thetaPlayerX)
|
||||||
|
//{
|
||||||
|
// var index = GetWedgeIndex(thetaPlayerX);
|
||||||
|
// var w = wedges[index];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// w.offset = w.offset - 0.5f;
|
||||||
|
// if (w.offset < -1.0f)
|
||||||
|
// w.offset = -1.0f;
|
||||||
|
|
||||||
|
// var angle = w.tMin; //w.tMax - TailleCartiersEnDegres/2;
|
||||||
|
|
||||||
|
// var normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
||||||
|
// normalPos.x -= Mathf.Cos(angle * Mathf.PI / 180);
|
||||||
|
// normalPos.y -= Mathf.Sin(angle * Mathf.PI / 180);
|
||||||
|
|
||||||
|
// var wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
||||||
|
// wedgePos.x -= Mathf.Cos(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Cos(angle * Mathf.PI / 180);
|
||||||
|
// wedgePos.y -= Mathf.Sin(angle * Mathf.PI / 180) - 50 * w.offset * Mathf.Sin(angle * Mathf.PI / 180);
|
||||||
|
|
||||||
|
|
||||||
|
// w.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime);
|
||||||
|
|
||||||
|
// ///push back l'opposée
|
||||||
|
// var indexOppose = GetWedgeOpposé(index);
|
||||||
|
// var v = wedges[indexOppose];
|
||||||
|
|
||||||
|
// v.offset = v.offset + 0.5f;
|
||||||
|
// if (v.offset > 1.0f)
|
||||||
|
// v.offset = 1.0f;
|
||||||
|
|
||||||
|
// angle = v.tMin; //w.tMax - TailleCartiersEnDegres/2;
|
||||||
|
|
||||||
|
// normalPos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
||||||
|
// normalPos.x -= Mathf.Cos(angle * Mathf.PI / 180);
|
||||||
|
// normalPos.y -= Mathf.Sin(angle * Mathf.PI / 180);
|
||||||
|
|
||||||
|
// wedgePos = GetPlanetCoordinatesFromPlayerXY(angle, 0);
|
||||||
|
// wedgePos.x -= Mathf.Cos(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Cos(angle * Mathf.PI / 180);
|
||||||
|
// wedgePos.y -= Mathf.Sin(angle * Mathf.PI / 180) - 50 * v.offset * Mathf.Sin(angle * Mathf.PI / 180);
|
||||||
|
|
||||||
|
|
||||||
|
// v.sprite.transform.position = Vector3.Lerp(normalPos, wedgePos, Time.deltaTime);
|
||||||
|
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Radius sphere est scale/2
|
/// Radius sphere est scale/2
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -113,14 +136,26 @@ public class PlanetManager : MonoBehaviour
|
|||||||
return gameObject.transform.localScale.x / 2.0f;
|
return gameObject.transform.localScale.x / 2.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Radius sphere est scale/2
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public float GetPlanetRadius(float thetaPlayerX)
|
||||||
|
{
|
||||||
|
var wedge = GetWedgeFromTheta(thetaPlayerX);
|
||||||
|
return GetPlanetRadius() * wedge.offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Vector3 GetPlanetCoordinatesFromPlayerXY(float playerLocalX, float playerLocalY)
|
public Vector3 GetPlanetCoordinatesFromPlayerXY(float playerLocalX, float playerLocalY)
|
||||||
{
|
{
|
||||||
var theta = playerLocalX;
|
var theta = playerLocalX;
|
||||||
var x = GetPlanetRadius() * Math.Cos(theta * Math.PI / 180);
|
var wedgeRadius = GetPlanetRadius(playerLocalX);
|
||||||
var y = GetPlanetRadius() * Math.Sin(theta * Math.PI / 180) + playerLocalY;
|
var x = wedgeRadius * Mathf.Cos(theta * Mathf.PI / 180);
|
||||||
|
var y = wedgeRadius * Mathf.Sin(theta * Mathf.PI / 180) + playerLocalY;
|
||||||
|
|
||||||
return new Vector3((float)x, (float)y, 0);
|
return new Vector3(x, y, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -160,7 +195,7 @@ public class PlanetManager : MonoBehaviour
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Wedge
|
public class Wedge
|
||||||
{
|
{
|
||||||
public float offset = 0; //valeurs entre -1 et 1; -1 étant renfoncé, 0 position normale, et 1 vers l'extérieur
|
public float offset = 1.0f; //valeurs entre -1 et 1; -1 étant renfoncé, 0 position normale, et 1 vers l'extérieur
|
||||||
public float tMin = 0; //theta min et theta max : angle thetat de début et fin du cartier;
|
public float tMin = 0; //theta min et theta max : angle thetat de début et fin du cartier;
|
||||||
public float tMax = 0;
|
public float tMax = 0;
|
||||||
|
|
||||||
|
|||||||
@ -60,16 +60,21 @@ public class testRotate : MonoBehaviour {
|
|||||||
{
|
{
|
||||||
var speed = 13.2f;
|
var speed = 13.2f;
|
||||||
var theta = Time.realtimeSinceStartup * speed % 360.0f; // Position X du player = angle theta
|
var theta = Time.realtimeSinceStartup * speed % 360.0f; // Position X du player = angle theta
|
||||||
var r = 4.5f; //sphereradius
|
|
||||||
|
|
||||||
|
|
||||||
// XY coordinates
|
var planet = GameObject.Find("Planet").gameObject.GetComponent<PlanetManager>();
|
||||||
var x = r * Mathf.Cos(theta * Mathf.PI / 180);
|
|
||||||
var y = r * Mathf.Sin(theta * Mathf.PI / 180); // + y0 du player
|
// var r = planet.GetPlanetRadius(theta);
|
||||||
|
|
||||||
|
|
||||||
|
// XY coordinates
|
||||||
|
// var x = r * Mathf.Cos(theta * Mathf.PI / 180);
|
||||||
|
// var y = r * Mathf.Sin(theta * Mathf.PI / 180); // + y0 du player
|
||||||
|
|
||||||
var player = GameObject.Find("CubePlayer").gameObject;
|
var player = GameObject.Find("CubePlayer").gameObject;
|
||||||
|
|
||||||
player.transform.position = Vector3.Lerp(player.transform.position, new Vector3(x, y, 0 ), Time.deltaTime);
|
//player.transform.position = Vector3.Lerp(player.transform.position, new Vector3(x, y, 0 ), Time.deltaTime);
|
||||||
|
player.transform.position = Vector3.Lerp(player.transform.position,
|
||||||
|
planet.GetPlanetCoordinatesFromPlayerXY(theta, 0f), Time.fixedDeltaTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user