Browse Source

指针优化

pull/35/head
软件204张景程 1 year ago
parent
commit
2a1f6f7880
  1. 3
      ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/ForUse/Card_v01-PuTong.prefab
  2. 989
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  3. 33
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/ArrowManager.cs
  4. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

3
ColorlessWorld-2024-4-2/Assets/Prefab/CardPrefab/ForUse/Card_v01-PuTong.prefab

@ -568,6 +568,7 @@ MonoBehaviour:
canUse: 1
smallCardPrefab: {fileID: 3615574969851259241, guid: 2f88da2f5ca2fbc438b76c3faf2ea9db,
type: 3}
noSmallCard: 0
--- !u!114 &5545682449418996990
MonoBehaviour:
m_ObjectHideFlags: 0
@ -799,7 +800,7 @@ MonoBehaviour:
arrowNodePrefab: {fileID: 5422017731306186776, guid: 75f6f4f191fef2941a9c8f90833afbbf,
type: 3}
arrowNodeNum: 10
scaleFactor: 0.5
scaleFactor: 0.3
--- !u!1 &5247884972612715378
GameObject:
m_ObjectHideFlags: 0

989
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

File diff suppressed because it is too large

33
ColorlessWorld-2024-4-2/Assets/Scripts/Card/ArrowManager.cs

@ -9,21 +9,21 @@ public class ArrowManager : MonoBehaviour
public int arrowNodeNum;
public float scaleFactor = 1f;//节点缩放
private RectTransform origin;//Æðµã
private List<RectTransform> arrowNodes = new List<RectTransform>();//ÿ¸ö½ÚµãλÖÃ
private Transform origin;//Æðµã
private List<Transform> arrowNodes = new List<Transform>();//ÿ¸ö½ÚµãλÖÃ
private List<Vector2> controlPoints = new List<Vector2>();//贝塞尔曲线控制节点p0-p3
private readonly List<Vector2> controlPointFactors = new List<Vector2>() { new Vector2(-0.3f, 0.8f), new Vector2(0.1f, 1.4f) };//决定p1和p2位置的向量因子
private void Awake()
{
this.origin = this.GetComponent<RectTransform>();
this.origin = this.transform;
for (int i=0;i<this .arrowNodeNum;++i)
{
this.arrowNodes.Add(Instantiate(this.arrowNodePrefab, this.transform).GetComponent<RectTransform>());
this.arrowNodes.Add(Instantiate(this.arrowNodePrefab, this.transform).transform);
}
this.arrowNodes.Add(Instantiate(this.arrowHeadPrefab, this.transform).GetComponent<RectTransform>());
this.arrowNodes.Add(Instantiate(this.arrowHeadPrefab, this.transform).transform);
//todo-隐藏?
@ -36,13 +36,20 @@ public class ArrowManager : MonoBehaviour
public void Update()
{
//p0是起始位置
Vector3 worldstart = transform.parent.TransformPoint(transform.position);
this.controlPoints[0] = new Vector2(worldstart.x, worldstart.y);
Debug.Log(controlPoints[0]);
// Vector3 worldstart = transform.parent.position ;
// Debug.Log(transform.parent.name + transform.parent.position );
this.controlPoints[0] = new Vector2(0, 0);
// Vector3 worldstart = transform.parent.TransformPoint(transform.position);
// this.controlPoints[0] = new Vector2(worldstart.x, worldstart.y);
//Debug.Log(controlPoints[0]);
//p3是鼠标位置-------鼠标在ui平面上的位置
Vector3 position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 8f);
Vector3 position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f);
Vector3 worldPoint = Camera.main.ScreenToWorldPoint(position);
this.controlPoints[3] = new Vector2(worldPoint .x,worldPoint .y);
Vector3 localPoint = transform.InverseTransformPoint(worldPoint);
this.controlPoints[3] = new Vector2(localPoint .x,localPoint .y);
//p1p2通过p0p3计算
this.controlPoints[1] = this.controlPoints[0] + (this.controlPoints[3] - this.controlPoints[0] )* this.controlPointFactors[0];
@ -58,12 +65,12 @@ public class ArrowManager : MonoBehaviour
3 * (1 - t) * Mathf.Pow(t, 2) * this.controlPoints[2] +
Mathf.Pow(t, 3) * this.controlPoints[3];
this.arrowNodes[i].position = currentPoint;
this.arrowNodes[i].localPosition -= new Vector3(0, 0, this.arrowNodes[i].localPosition.z);
this.arrowNodes[i].localPosition = currentPoint;
//this.arrowNodes[i].localPosition -= new Vector3(0, 0, this.arrowNodes[i].localPosition.z);
if (i > 0)
{
var euler = new Vector3 (0,0,Vector2.SignedAngle(CardActiveSort.Instance.transform.InverseTransformDirection(transform.up), this.arrowNodes[i].position-this.arrowNodes[i-1].position));
var euler = new Vector3 (0,0,Vector2.SignedAngle(CardActiveSort.Instance.transform.InverseTransformDirection(transform.up), this.arrowNodes[i].localPosition-this.arrowNodes[i-1].localPosition));
this.arrowNodes[i].localRotation = Quaternion.Euler(euler);
}

2
ColorlessWorld-2024-4-2/Assets/Scripts/MapManager.cs

@ -23,6 +23,7 @@ public class MapManager : Singleton<MapManager>
[Header("一次性注册信息")]
public Text playerNameText;
public Text playerMoneyText;
void Start()
{
@ -34,6 +35,7 @@ public class MapManager : Singleton<MapManager>
public void SetUpScenceInfor()
{
playerNameText .text = GameManager.Instance.playerState.playerName;
playerMoneyText.text = GameManager.Instance.playerState.money.ToString ();
}
public void test()

Loading…
Cancel
Save