summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/DragonExpedition/XDragonExpedition.cs
blob: 6461871c1d5677639d85610d929dec70d51b537b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using UnityEngine;
using System.Collections;
using XUtliPoolLib;
using System;

public class XDragonExpedition : MonoBehaviour, IXDragonExpedition
{
    #region 接口
    public void Drag(float delta)
    {
        MoveCamera(delta);
    }

    public void  Assign(float delta)
    {
        AssignCamera(delta);
    }

    public Transform GetGO(string name)
    {
        return transform.Find(name);
    }

    public void SetLimitPos(float MinPos)
    {
        MIN_POS = MinPos;
    }

    RaycastHit[] hits = null;

    public GameObject Click()
    {
        //Vector3 pos = mCamera.ScreenToViewportPoint(Input.mousePosition);

        Ray ray = mCamera.ScreenPointToRay(Input.mousePosition);

        float dist = mCamera.farClipPlane - mCamera.nearClipPlane;

        hits = Physics.RaycastAll(ray, dist);
        for (int i = 0; i < hits.Length; ++i)
        {
            if (hits[i].collider.gameObject.name.StartsWith("building"))
                return hits[i].collider.gameObject;
        }

        return null;
    }

    public Camera GetDragonCamera()
    {
        return mCamera;
    }

    #endregion

    void Start()
    {
        curPos = mCamera.transform.localPosition;
    }

    public Camera mCamera = null;

    public float MoveSpeed = 5;

    public float MIN_POS = 0;

    public float MAX_POS = 100;

    Vector3 curPos = Vector3.zero;

    void MoveCamera(float delta)
    {
        curPos.x += delta * MoveSpeed;

        if (curPos.x < MIN_POS) curPos.x = MIN_POS;
        if (curPos.x > MAX_POS) curPos.x = MAX_POS;

        mCamera.transform.localPosition = curPos;
    }

    void AssignCamera(float delta)
    {
        Vector3 pos = mCamera.transform.localPosition;
        pos.x = delta;
        if (pos.x < MIN_POS) pos.x = MIN_POS;
        if (pos.x > MAX_POS) pos.x = MAX_POS;
        curPos.x = pos.x;
        mCamera.transform.localPosition = pos;
    }
}