|
@@ -13,6 +13,7 @@ namespace DuckHunter
|
|
|
private Transform leftHand;
|
|
private Transform leftHand;
|
|
|
private Transform rightHand;
|
|
private Transform rightHand;
|
|
|
private Transform[] objectInHands = { null, null, null };
|
|
private Transform[] objectInHands = { null, null, null };
|
|
|
|
|
+ static Vector2 DefaultAanchoredPosition = Vector2.down * 100;
|
|
|
|
|
|
|
|
void Start()
|
|
void Start()
|
|
|
{
|
|
{
|
|
@@ -20,7 +21,7 @@ namespace DuckHunter
|
|
|
armature = GetComponentInChildren<DragonBones.UnityArmatureComponent>();
|
|
armature = GetComponentInChildren<DragonBones.UnityArmatureComponent>();
|
|
|
armature.AddEventListener(DragonBones.EventObject.COMPLETE, OnAnimationEventHandler);
|
|
armature.AddEventListener(DragonBones.EventObject.COMPLETE, OnAnimationEventHandler);
|
|
|
_rectTransform = transform as RectTransform;
|
|
_rectTransform = transform as RectTransform;
|
|
|
- _rectTransform.anchoredPosition = Vector2.zero;
|
|
|
|
|
|
|
+ _rectTransform.anchoredPosition = DefaultAanchoredPosition;
|
|
|
PlayIdle();
|
|
PlayIdle();
|
|
|
//生成左右手掌的节点,用于拿起鸭子
|
|
//生成左右手掌的节点,用于拿起鸭子
|
|
|
var lo = new GameObject();
|
|
var lo = new GameObject();
|
|
@@ -91,16 +92,32 @@ namespace DuckHunter
|
|
|
void Show()
|
|
void Show()
|
|
|
{
|
|
{
|
|
|
isShowing = true;
|
|
isShowing = true;
|
|
|
- _rectTransform.anchoredPosition = new Vector2(_rectTransform.anchoredPosition.x, 30);
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ Vector3 myPos = _rectTransform.position;
|
|
|
|
|
+ float topPointY = transform.parent.Find("TopCenterPoint").position.y;
|
|
|
|
|
+ RaycastHit2D[] hits = Physics2D.RaycastAll(new Vector2(myPos.x, topPointY), Vector2.down);
|
|
|
|
|
+ foreach (var item in hits)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (item.collider.name == "BottomCollider")
|
|
|
|
|
+ {
|
|
|
|
|
+ _rectTransform.position = new Vector2(_rectTransform.position.x, item.point.y);
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ _rectTransform.anchoredPosition += Vector2.down * 170;
|
|
|
|
|
+ float startAnchoredPositionY = _rectTransform.anchoredPosition.y;
|
|
|
|
|
+
|
|
|
|
|
+ //_rectTransform.anchoredPosition = new Vector2(_rectTransform.anchoredPosition.x, 30);
|
|
|
Sequence sequence = DOTween.Sequence();
|
|
Sequence sequence = DOTween.Sequence();
|
|
|
- sequence.Append(_rectTransform.DOAnchorPosY(200, 0.5f));
|
|
|
|
|
|
|
+ sequence.Append(_rectTransform.DOAnchorPosY(startAnchoredPositionY + 145, 0.5f));
|
|
|
sequence.AppendInterval(0.5f);
|
|
sequence.AppendInterval(0.5f);
|
|
|
- sequence.Append(_rectTransform.DOAnchorPosY(30, 0.5f));
|
|
|
|
|
|
|
+ sequence.Append(_rectTransform.DOAnchorPosY(startAnchoredPositionY, 0.5f));
|
|
|
sequence.AppendCallback(() =>
|
|
sequence.AppendCallback(() =>
|
|
|
{
|
|
{
|
|
|
isShowing = false;
|
|
isShowing = false;
|
|
|
if (_lastAnimationName == "kaixin") ClearObjectInHands();
|
|
if (_lastAnimationName == "kaixin") ClearObjectInHands();
|
|
|
- _rectTransform.anchoredPosition = Vector2.zero;
|
|
|
|
|
|
|
+ _rectTransform.anchoredPosition = DefaultAanchoredPosition;
|
|
|
PlayIdle();
|
|
PlayIdle();
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -119,15 +136,17 @@ namespace DuckHunter
|
|
|
//把狗弄到鸟下落的位置
|
|
//把狗弄到鸟下落的位置
|
|
|
_rectTransform.position = new Vector2(duck.transform.position.x, 0);
|
|
_rectTransform.position = new Vector2(duck.transform.position.x, 0);
|
|
|
//避免狗太靠边
|
|
//避免狗太靠边
|
|
|
- Vector3 lc = _rectTransform.localPosition;
|
|
|
|
|
- float pw = (_rectTransform.parent as RectTransform).rect.width;
|
|
|
|
|
- float minX = -pw / 2 + 200;
|
|
|
|
|
- float maxX = pw / 2 - 200;
|
|
|
|
|
- if (lc.x < minX) lc.x = minX;
|
|
|
|
|
- else if (lc.x > maxX) lc.x = maxX;
|
|
|
|
|
- _rectTransform.localPosition = lc;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
+ //Vector3 lc = _rectTransform.localPosition;
|
|
|
|
|
+ //float pw = (_rectTransform.parent as RectTransform).rect.width;
|
|
|
|
|
+ //float minX = -pw / 2 + 200;
|
|
|
|
|
+ //float maxX = pw / 2 - 200;
|
|
|
|
|
+ //if (lc.x < minX) lc.x = minX;
|
|
|
|
|
+ //else if (lc.x > maxX) lc.x = maxX;
|
|
|
|
|
+ //_rectTransform.localPosition = lc;
|
|
|
|
|
+
|
|
|
|
|
+ float xMin = _rectTransform.parent.Find("DogSideL").position.x;
|
|
|
|
|
+ float xMax = _rectTransform.parent.Find("DogSideR").position.x;
|
|
|
|
|
+ _rectTransform.position = new Vector2(Mathf.Clamp(_rectTransform.position.x, xMin, xMax), _rectTransform.position.y);
|
|
|
}
|
|
}
|
|
|
else if (eventType == SensitiveEventType.DuckGetAway)
|
|
else if (eventType == SensitiveEventType.DuckGetAway)
|
|
|
{
|
|
{
|