示例#1
0
    public static float Add(GameObject go)
    {
        if(instance == null){
            GameObject aux  = new GameObject("BulletMarkManager");
            instance = aux.AddComponent("BulletMarkManager") as BulletMarkManager;
            instance.maxMarks = 60;
        }

        GameObject auxGO;
        Transform auxT;
        Transform currentT = go.transform;
        Vector3 currentPos = currentT.position;
        float radius = (currentT.localScale.x * currentT.localScale.x * 0.25f) + (currentT.localScale.y * currentT.localScale.y * 0.25f) + (currentT.localScale.z * currentT.localScale.z * 0.25f);
        radius = Mathf.Sqrt(radius);
        float realRadius = radius * 2f;
        radius *= 0.2f;

        float distance;

        if(instance.marks.Count == instance.maxMarks){
            auxGO = (GameObject)instance.marks[0];
            Destroy(auxGO);
            instance.marks.RemoveAt(0);
            instance.pushDistances.RemoveAt(0);
        }

        float pushDistance = 0.0001f;
        int length = instance.marks.Count;
        //		int sideMarks = 0;
        for(int i= 0; i < length; i++){
            auxGO = instance.marks[i] as GameObject;

            if(auxGO != null){
                auxT = auxGO.transform;
                distance = (auxT.position - currentPos).magnitude;
                if(distance < radius){
                    Destroy(auxGO);
                    instance.marks.RemoveAt(i);
                    instance.pushDistances.RemoveAt(i);
                    i--;
                    length--;
                } else if(distance < realRadius){
                    float cDist = (float)instance.pushDistances[i];
                    pushDistance = Mathf.Max(pushDistance, cDist);
                }
            } else {
                instance.marks.RemoveAt(i);
                instance.pushDistances.RemoveAt(i);
                i--;
                length--;
            }
        }
        pushDistance += 0.0005f;

        instance.marks.Add(go);
        instance.pushDistances.Add(pushDistance);
        return pushDistance;
    }
示例#2
0
 void Start()
 {
     if(instance == null){
         instance = this;
     }
 }
示例#3
0
    private void DrawWeaponBase()
    {
        EditorGUILayout.Space();
        EditorGUILayout.BeginVertical("Window");

        EditorGUI.BeginChangeCheck();
        int weaponId = EditorGUILayout.IntField("Weapon ID", m_Target.weaponId);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Weapon ID");
            m_Target.weaponId = weaponId;
        }

        EditorGUI.BeginChangeCheck();
        string weaponName = EditorGUILayout.TextField("Weapon Name", m_Target.weaponName);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Weapon Name");
            m_Target.weaponName = weaponName;
        }

        if (m_Target.weaponName.Length > 0)
        {
            m_Target.gameObject.name = m_Target.weaponName;
        }
        else
        {
            m_Target.gameObject.name = "Weapon Name";
        }

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Weapon Icon");

        EditorGUI.BeginChangeCheck();
        Texture2D weaponIcon = (Texture2D)EditorGUILayout.ObjectField(m_Target.weaponIcon, typeof(Texture2D), false);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Weapon Icon");
            m_Target.weaponIcon = weaponIcon;
        }

        EditorGUILayout.EndHorizontal();

        EditorGUI.BeginChangeCheck();
        GameObject droppablePrefab = (GameObject)EditorGUILayout.ObjectField("Droppable Prefab", m_Target.droppablePrefab, typeof(GameObject), false);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Droppable Prefab");
            m_Target.droppablePrefab = droppablePrefab;
        }

        EditorGUILayout.Space();

        EditorGUI.BeginChangeCheck();
        float weight = EditorGUILayout.Slider("Weapon Weight", m_Target.weight, 0, 2.5f);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Weapon Weight");
            m_Target.weight = weight;
        }

        EditorGUI.BeginChangeCheck();
        CrosshairStyle crosshairStyle = (CrosshairStyle)EditorGUILayout.EnumPopup("Crosshair Style", m_Target.crosshairStyle);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Crosshair Style");
            m_Target.crosshairStyle = crosshairStyle;
        }

        EditorGUILayout.Space();

        EditorGUI.BeginChangeCheck();
        bool melee = EditorGUILayout.Toggle("Melee Attack", m_Target.melee);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Disabe/Enable Melee Attack");
            m_Target.melee = melee;
        }

        EditorGUILayout.Space();

        EditorGUI.BeginChangeCheck();
        Camera mainCamera = (Camera)EditorGUILayout.ObjectField("Main Camera", m_Target.mainCamera, typeof(Camera), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Main Camera");
            m_Target.mainCamera = mainCamera;
        }

        EditorGUI.BeginChangeCheck();
        MoveController controller = (MoveController)EditorGUILayout.ObjectField("Player", m_Target.controller, typeof(MoveController), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Player");
            m_Target.controller = controller;
        }

        EditorGUI.BeginChangeCheck();
        CameraAnimations cameraAnimations = (CameraAnimations)EditorGUILayout.ObjectField("Camera Animations", m_Target.cameraAnimations, typeof(CameraAnimations), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed Camera Animations");
            m_Target.cameraAnimations = cameraAnimations;
        }

        EditorGUI.BeginChangeCheck();
        PlayerUI ui = (PlayerUI)EditorGUILayout.ObjectField("UI", m_Target.UI, typeof(PlayerUI), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Changed UI");
            m_Target.UI = ui;
        }

        EditorGUI.BeginChangeCheck();
        BulletMarkManager bulletMark = (BulletMarkManager)EditorGUILayout.ObjectField("Bullet Marks Manager", m_Target.bulletMark, typeof(BulletMarkManager), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Bullet Marks Manager");
            m_Target.bulletMark = bulletMark;
        }

        EditorGUI.BeginChangeCheck();
        WeaponsManager weaponManager = (WeaponsManager)EditorGUILayout.ObjectField("Weapons Manager", m_Target.weaponManager, typeof(WeaponsManager), true);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(target, "Bullet Weapons Manager");
            m_Target.weaponManager = weaponManager;
        }

        EditorGUILayout.Space();
        if (GUILayout.Button("Enable / Disabe"))
        {
            if (hide)
            {
                hide = false;
            }
            else
            {
                hide = true;
            }
            m_Target.DisableRenders(hide);
        }

        EditorGUILayout.EndVertical();
    }