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 canUse: 1
smallCardPrefab: {fileID: 3615574969851259241, guid: 2f88da2f5ca2fbc438b76c3faf2ea9db, smallCardPrefab: {fileID: 3615574969851259241, guid: 2f88da2f5ca2fbc438b76c3faf2ea9db,
type: 3} type: 3}
noSmallCard: 0
--- !u!114 &5545682449418996990 --- !u!114 &5545682449418996990
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -799,7 +800,7 @@ MonoBehaviour:
arrowNodePrefab: {fileID: 5422017731306186776, guid: 75f6f4f191fef2941a9c8f90833afbbf, arrowNodePrefab: {fileID: 5422017731306186776, guid: 75f6f4f191fef2941a9c8f90833afbbf,
type: 3} type: 3}
arrowNodeNum: 10 arrowNodeNum: 10
scaleFactor: 0.5 scaleFactor: 0.3
--- !u!1 &5247884972612715378 --- !u!1 &5247884972612715378
GameObject: GameObject:
m_ObjectHideFlags: 0 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 int arrowNodeNum;
public float scaleFactor = 1f;//节点缩放 public float scaleFactor = 1f;//节点缩放
private RectTransform origin;//Æðµã private Transform origin;//Æðµã
private List<RectTransform> arrowNodes = new List<RectTransform>();//ÿ¸ö½ÚµãλÖà private List<Transform> arrowNodes = new List<Transform>();//ÿ¸ö½ÚµãλÖÃ
private List<Vector2> controlPoints = new List<Vector2>();//贝塞尔曲线控制节点p0-p3 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 readonly List<Vector2> controlPointFactors = new List<Vector2>() { new Vector2(-0.3f, 0.8f), new Vector2(0.1f, 1.4f) };//决定p1和p2位置的向量因子
private void Awake() private void Awake()
{ {
this.origin = this.GetComponent<RectTransform>(); this.origin = this.transform;
for (int i=0;i<this .arrowNodeNum;++i) 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-隐藏? //todo-隐藏?
@ -36,13 +36,20 @@ public class ArrowManager : MonoBehaviour
public void Update() public void Update()
{ {
//p0是起始位置 //p0是起始位置
Vector3 worldstart = transform.parent.TransformPoint(transform.position);
this.controlPoints[0] = new Vector2(worldstart.x, worldstart.y); // Vector3 worldstart = transform.parent.position ;
Debug.Log(controlPoints[0]); // 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平面上的位置 //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); 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计算 //p1p2通过p0p3计算
this.controlPoints[1] = this.controlPoints[0] + (this.controlPoints[3] - this.controlPoints[0] )* this.controlPointFactors[0]; 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] + 3 * (1 - t) * Mathf.Pow(t, 2) * this.controlPoints[2] +
Mathf.Pow(t, 3) * this.controlPoints[3]; Mathf.Pow(t, 3) * this.controlPoints[3];
this.arrowNodes[i].position = currentPoint; this.arrowNodes[i].localPosition = currentPoint;
this.arrowNodes[i].localPosition -= new Vector3(0, 0, this.arrowNodes[i].localPosition.z); //this.arrowNodes[i].localPosition -= new Vector3(0, 0, this.arrowNodes[i].localPosition.z);
if (i > 0) 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); 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("一次性注册信息")] [Header("一次性注册信息")]
public Text playerNameText; public Text playerNameText;
public Text playerMoneyText;
void Start() void Start()
{ {
@ -34,6 +35,7 @@ public class MapManager : Singleton<MapManager>
public void SetUpScenceInfor() public void SetUpScenceInfor()
{ {
playerNameText .text = GameManager.Instance.playerState.playerName; playerNameText .text = GameManager.Instance.playerState.playerName;
playerMoneyText.text = GameManager.Instance.playerState.money.ToString ();
} }
public void test() public void test()

Loading…
Cancel
Save