Question for Devs(Not about multiplayer or anything like that)

RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
I'm aiming to create a unity android app simulating The PDA but as a tablet. Hopefully It'll be able to be used as a perfectly ordinary operating system(Launching apps, That sort of thing), so, Could I have permission to use the PDA design and name? I'll release the app free of charge, With no in-app purchases, and a little page giving full credit to you and with a link to the main Subnautica website.

Comments

  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    You could contact the devs using the info their about page, might get a quicker and more targeted response: https://unknownworlds.com/about/
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    Kouji_San wrote: »
    You could contact the devs using the info their about page, might get a quicker and more targeted response: https://unknownworlds.com/about/

    I'd rather ask them on the forums.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    Fair enuf, summoning our overlord @Obraxis :D
  • AnomalyDetectedAnomalyDetected Alterra Housing District: Planet Vicaron Join Date: 2017-04-19 Member: 229741Members
    In all honesty, I would download that. It'd be awesome to have a "PDA" i'd even make a custom frame for my tablet to make it look like a PDA.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    In all honesty, I would download that. It'd be awesome to have a "PDA" i'd even make a custom frame for my tablet to make it look like a PDA.

    It wouldn't be a PDA like in the game, as that one booted in emergency mode, I'm just going to create what I think a PDA that booted normally would be like, but I'm going to keep things like the inventory and ping manager(The data bank entry tab will also come Pre-loaded with all the subnautica data bank entrys)(Though don't worry, I'll try to keep the main feel )
  • AnomalyDetectedAnomalyDetected Alterra Housing District: Planet Vicaron Join Date: 2017-04-19 Member: 229741Members
    Recursion wrote: »
    In all honesty, I would download that. It'd be awesome to have a "PDA" i'd even make a custom frame for my tablet to make it look like a PDA.

    I would too. I feel the great tablet case coglomerates are missing out on great things.

    Best part? PDA is such a simple exterior design.

    4s2rbbtjp572.png
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    Recursion wrote: »
    In all honesty, I would download that. It'd be awesome to have a "PDA" i'd even make a custom frame for my tablet to make it look like a PDA.

    I would too. I feel the great tablet case coglomerates are missing out on great things.

    Best part? PDA is such a simple exterior design.

    4s2rbbtjp572.png

    I just edited that post, so Just to everyone else, No, you won't find me talking about the great tablet coglomerates.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    Maybe Apple will steal the design some day :tongue:
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    @Obraxis , Please, Grace this thread with your presence!
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    While We're waiting, I might as well take suggestions. Any suggestions for the PDapp, @Kouji_San , or @AnomalyDetected ?
  • DaveyNYDaveyNY Schenectady, NY Join Date: 2016-08-30 Member: 221903Members
    edited September 2017
    Now, if only it had these kinda graphics on it...

    vk0q6al3qq1m.png


    <a href="http://zaazu.com"><img src="http://images.zaazu.com/img/Spock-spock-star-trek-smiley-emoticon-000554-medium.gif&quot; width="90" height="58" border="0" alt="http://zaazu.com&quot; /></a>
  • AnomalyDetectedAnomalyDetected Alterra Housing District: Planet Vicaron Join Date: 2017-04-19 Member: 229741Members
    Recursion wrote: »
    While We're waiting, I might as well take suggestions. Any suggestions for the PDapp, @Kouji_San , or @AnomalyDetected ?

    Idea:

    Create a theme that has the PDA interface.

    I know that's what you planned, but listen.

    What if you added a a, first of all, blue background, but with that kinda PDA feel to it.

    Then add a bar at the top, like how the actual PDA has, and make it so you can set the name. Have it so when you switch pages, it switches what part of the bar your on.

    Idk if this is even possible, but it would make it FEEL like subnautica.

    Stay swimmin' my friend.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    Recursion wrote: »
    While We're waiting, I might as well take suggestions. Any suggestions for the PDapp, @Kouji_San , or @AnomalyDetected ?

    Idea:

    Create a theme that has the PDA interface.

    I know that's what you planned, but listen.

    What if you added a a, first of all, blue background, but with that kinda PDA feel to it.

    Then add a bar at the top, like how the actual PDA has, and make it so you can set the name. Have it so when you switch pages, it switches what part of the bar your on.

    Idk if this is even possible, but it would make it FEEL like subnautica.

    Stay swimmin' my friend.

    That actually would make switching the tabs so much easier, Because unity only supports rectangular buttons, and the only way you can make the rhombus buttons is to buy a $35 asset from the asset store. I was also going to have several prefab tabs(Inventory(It'll show your apps, but you can also rig it(If you're on a camping trip) to show what's in your backpack(but you have to input it all manually)), Pings(It'll literally be a map you can save various points on), blueprints(I don't even know What I'm doing for this one. maybe the app store), @DaveyNY maybe a science tab, A data bank entry tab(I'm going to make some algorithims so that you can save a page online and it'll be saved in the data bank(or if it's on a fandom wiki, the text will be saved)), A log tab(Showing the latest news?), and a photo tab(Showing, you guessed it, Photos), and I was going to make it so that you could add or decrease the number of tabs you had on your PDA(You could even have multiple of one), so that you could fully personalise it. So your tab idea would make that a whole lot easier to implement. Thanks.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    Would be neat if you'd have the VOX in there somehow
  • AnomalyDetectedAnomalyDetected Alterra Housing District: Planet Vicaron Join Date: 2017-04-19 Member: 229741Members
    Kouji_San wrote: »
    Would be neat if you'd have the VOX in there somehow

    Idea:

    Make an optional button in the app to play some PDA alerts. Maybe some of the random Dialogue or a few other lines.
  • nesrak1nesrak1 Places Join Date: 2016-12-04 Member: 224536Members
    Recursion wrote: »
    Because unity only supports rectangular buttons, and the only way you can make the rhombus buttons is to buy a $35 asset from the asset store.

    I wouldn't recommend using unity for gui only applications...
    But then again, what do I know? Bethesda uses unity 4 (way after unity 5 was released) for their pipboy app with a flash wrapper :/
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    Kouji_San wrote: »
    Would be neat if you'd have the VOX in there somehow

    Idea:

    Make an optional button in the app to play some PDA alerts. Maybe some of the random Dialogue or a few other lines.

    Actually, that could be a thing on the science tab.
  • ObraxisObraxis Subnautica Animator & Generalist, NS2 Person Join Date: 2004-07-24 Member: 30071Super Administrators, Forum Admins, NS1 Playtester, Forum Moderators, NS2 Developer, Constellation, NS2 Playtester, Squad Five Silver, WC 2013 - Supporter, Subnautica Developer, Pistachionauts
    You will need to email charlie [at] unknownworlds.com to seek permission I do believe.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    edited September 2017
    Obraxis wrote: »
    You will need to email charlie [at] unknownworlds.com to seek permission I do believe.

    @Obraxis , thanks for the info. So, just to make sure, I should put in this email address:"xxxxxxxxxxxxxx"?
    Never mind the xses. I messed up bad.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited September 2017
    Recursion wrote: »
    Obraxis wrote: »
    You will need to email charlie [at] unknownworlds.com to seek permission I do believe.

    @Obraxis , thanks for the info. So, just to make sure, I should put in this email address:"charlie@unknownworlds.com"?

    Yep charlie [at] unknownworlds.com, which is Charlie @Flayra Cleveland, co-founder of UWE (along with our main man @Max Mcguire)


    We tend to do the [at] thing to avoid spam. But hey, his email is probably all over the internet in the creepy hand of spambots already :tongue:
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    He said Yes! I'll move this discussion over to a different thread.
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    edited September 2017
    Recursion wrote: »

    That actually would make switching the tabs so much easier, Because unity only supports rectangular buttons, and the only way you can make the rhombus buttons is to buy a $35 asset from the asset store.

    @Recursion try the script in this thread, it's free, and with a little tinkering, works in the latest versions of Unity...

    https://forum.unity.com/threads/none-rectangle-shaped-button.263684/

    I've posted the script below..
    using UnityEngine;
    using UnityEngine.UI;
     
    [RequireComponent(typeof(RectTransform))]
    [RequireComponent(typeof(Image))]
    public class RaycastMask : MonoBehaviour, ICanvasRaycastFilter
    {
        private Image _image;
        private Sprite _sprite;
     
        void Start ()
        {
            _image = GetComponent<Image>();
        }
     
        public bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
        {
            _sprite = _image.sprite;
     
            var rectTransform = (RectTransform)transform;
            Vector2 localPositionPivotRelative;
            RectTransformUtility.ScreenPointToLocalPointInRectangle((RectTransform) transform, sp, eventCamera, out localPositionPivotRelative);
     
            // convert to bottom-left origin coordinates
            var localPosition = new Vector2(localPositionPivotRelative.x + rectTransform.pivot.x*rectTransform.rect.width,
                localPositionPivotRelative.y + rectTransform.pivot.y*rectTransform.rect.height);
         
            var spriteRect = _sprite.textureRect;
            var maskRect = rectTransform.rect;
     
            var x = 0;
            var y = 0;
            // convert to texture space
            switch (_image.type)
            {
             
                case Image.Type.Sliced:
                {
                    var border = _sprite.border;
                    // x slicing
                    if (localPosition.x < border.x)
                    {
                        x = Mathf.FloorToInt(spriteRect.x + localPosition.x);
                    }
                    else if (localPosition.x > maskRect.width - border.z)
                    {
                        x = Mathf.FloorToInt(spriteRect.x + spriteRect.width - (maskRect.width - localPosition.x));
                    }
                    else
                    {
                        x = Mathf.FloorToInt(spriteRect.x + border.x +
                                             ((localPosition.x - border.x)/
                                             (maskRect.width - border.x - border.z)) *
                                             (spriteRect.width - border.x - border.z));
                    }
                    // y slicing
                    if (localPosition.y < border.y)
                    {
                        y = Mathf.FloorToInt(spriteRect.y + localPosition.y);
                    }
                    else if (localPosition.y > maskRect.height - border.w)
                    {
                        y = Mathf.FloorToInt(spriteRect.y + spriteRect.height - (maskRect.height - localPosition.y));
                    }
                    else
                    {
                        y = Mathf.FloorToInt(spriteRect.y + border.y +
                                             ((localPosition.y - border.y) /
                                             (maskRect.height - border.y - border.w)) *
                                             (spriteRect.height - border.y - border.w));
                    }
                }
                    break;
                case Image.Type.Simple:
                default:
                    {
                        // conversion to uniform UV space
                        x = Mathf.FloorToInt(spriteRect.x + spriteRect.width * localPosition.x / maskRect.width);
                        y = Mathf.FloorToInt(spriteRect.y + spriteRect.height * localPosition.y / maskRect.height);
                    }
                    break;
            }
     
            // destroy component if texture import settings are wrong
            try
            {
                return _sprite.texture.GetPixel(x,y).a > 0;
            }
            catch (UnityException e)
            {
                Debug.LogError("Mask texture not readable, set your sprite to Texture Type 'Advanced' and check 'Read/Write Enabled'");
                Destroy(this);
                return false;
            }
        }
    }
    

    There is also a link to a $15 asset in that thread if you want to buy one.
  • RecursionRecursion The cosmos Join Date: 2017-07-01 Member: 231505Members
    Soul_Rider wrote: »
    Recursion wrote: »

    That actually would make switching the tabs so much easier, Because unity only supports rectangular buttons, and the only way you can make the rhombus buttons is to buy a $35 asset from the asset store.

    @Recursion try the script in this thread, it's free, and with a little tinkering, works in the latest versions of Unity...

    https://forum.unity.com/threads/none-rectangle-shaped-button.263684/

    I've posted the script below..
    using UnityEngine;
    using UnityEngine.UI;
     
    [RequireComponent(typeof(RectTransform))]
    [RequireComponent(typeof(Image))]
    public class RaycastMask : MonoBehaviour, ICanvasRaycastFilter
    {
        private Image _image;
        private Sprite _sprite;
     
        void Start ()
        {
            _image = GetComponent<Image>();
        }
     
        public bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
        {
            _sprite = _image.sprite;
     
            var rectTransform = (RectTransform)transform;
            Vector2 localPositionPivotRelative;
            RectTransformUtility.ScreenPointToLocalPointInRectangle((RectTransform) transform, sp, eventCamera, out localPositionPivotRelative);
     
            // convert to bottom-left origin coordinates
            var localPosition = new Vector2(localPositionPivotRelative.x + rectTransform.pivot.x*rectTransform.rect.width,
                localPositionPivotRelative.y + rectTransform.pivot.y*rectTransform.rect.height);
         
            var spriteRect = _sprite.textureRect;
            var maskRect = rectTransform.rect;
     
            var x = 0;
            var y = 0;
            // convert to texture space
            switch (_image.type)
            {
             
                case Image.Type.Sliced:
                {
                    var border = _sprite.border;
                    // x slicing
                    if (localPosition.x < border.x)
                    {
                        x = Mathf.FloorToInt(spriteRect.x + localPosition.x);
                    }
                    else if (localPosition.x > maskRect.width - border.z)
                    {
                        x = Mathf.FloorToInt(spriteRect.x + spriteRect.width - (maskRect.width - localPosition.x));
                    }
                    else
                    {
                        x = Mathf.FloorToInt(spriteRect.x + border.x +
                                             ((localPosition.x - border.x)/
                                             (maskRect.width - border.x - border.z)) *
                                             (spriteRect.width - border.x - border.z));
                    }
                    // y slicing
                    if (localPosition.y < border.y)
                    {
                        y = Mathf.FloorToInt(spriteRect.y + localPosition.y);
                    }
                    else if (localPosition.y > maskRect.height - border.w)
                    {
                        y = Mathf.FloorToInt(spriteRect.y + spriteRect.height - (maskRect.height - localPosition.y));
                    }
                    else
                    {
                        y = Mathf.FloorToInt(spriteRect.y + border.y +
                                             ((localPosition.y - border.y) /
                                             (maskRect.height - border.y - border.w)) *
                                             (spriteRect.height - border.y - border.w));
                    }
                }
                    break;
                case Image.Type.Simple:
                default:
                    {
                        // conversion to uniform UV space
                        x = Mathf.FloorToInt(spriteRect.x + spriteRect.width * localPosition.x / maskRect.width);
                        y = Mathf.FloorToInt(spriteRect.y + spriteRect.height * localPosition.y / maskRect.height);
                    }
                    break;
            }
     
            // destroy component if texture import settings are wrong
            try
            {
                return _sprite.texture.GetPixel(x,y).a > 0;
            }
            catch (UnityException e)
            {
                Debug.LogError("Mask texture not readable, set your sprite to Texture Type 'Advanced' and check 'Read/Write Enabled'");
                Destroy(this);
                return false;
            }
        }
    }
    

    There is also a link to a $15 asset in that thread if you want to buy one.

    Thanks, but I'm using @AnomalyDetected 's idea with the bar.
Sign In or Register to comment.