블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Script (91)
Extensions (16)
Effect (3)
NGUI (81)
UGUI (9)
Physics (2)
Shader (37)
Math (1)
Design Pattern (2)
Xml (1)
Tips (201)
Link (23)
World (1)
AssetBundle (25)
Mecanim (2)
Plugins (79)
Trouble Shooting (70)
Encrypt (7)
LightMap (4)
Shadow (4)
Editor (12)
Crash Report (3)
Utility (9)
UnityVS (2)
Facebook SDK (2)
iTween (3)
Font (13)
Ad (14)
Photon (2)
IAP (1)
Google (8)
Android (51)
iOS (44)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
반응형

'Unity3D > Plugins' 카테고리의 다른 글

[펌] Background Worker for Unity3D  (0) 2018.06.01
[Link] UnityAppNameLocalizationForIOS  (0) 2018.03.27
[펌] UnityIPhoneXSupport  (0) 2017.11.10
[Link] unity-webview  (0) 2017.10.23
[펌] E-Motion . . . Live 2D 와 비슷한 계열의 툴.  (0) 2017.04.28
Posted by blueasa
, |

以下はUnity2017.1.1f1Xcode9.0GMで確認しています。

前置き

iPhoneXの対応がめんどくさそう
https://developer.apple.com/ios/human-interface-guidelines/overview/whats-new/

やりたいこと

Unity側でいちいち対応するのは面倒なので、Unityの描画領域を変更して、
iPhoneXの場合は上下に余白を持たせれば良いのでは?という案。

iPhone 8iPhoneX beforeiPhoneX after
iphonex8p.pngiphonex1.pngiphonex2.png

iPhoneX beforeの画像は、iPhone 8の画像と同じコードをそのまま実行したものです。
どう表示されるかはもちろんUnityでの実装によりますが、このサンプルの場合は
画面上部に合わせてテキストを表示しているので、iPhoneXの凹部に隠れてしまっています。

iPhoneX afterの画像は、Unityの描画領域を上50pt、下40pt短くし、余白部分に画像を設定しています。
ついでにステータスバーも表示しています。

ソース

GitHubに上げました。
https://github.com/tkyaji/UnityIPhoneXSupport

UnityIPhoneXSupport.unitypackage をインポートすると、
PostProcessBuildでビルド時にUnityのソースを書き換えて、余白を設定するようになります。

余白のサイズと色、または画像を定数で指定できます。

やってること

1. iPhoneXの場合、ステータスバーを表示する

iPhoneXではステータスバーの非表示は非推奨とのことなので、表示するようにします。

UnityのPlayerSettingsで、Status Ber Hiddenが設定されている場合のみ以下の処理を行います。

  • Info.plistの設定を、ステータスバー表示とする
  • UnityViewControllerBaseiOS.mmを書き換え、iPhoneXの場合は表示、それ以外は非表示とする

2. UnityのViewサイズを変更する

UnityAppController.mmUnityView.mmを書き換え、UIWindowUIViewのサイズをそれぞれ変更します。
高さを90pt短くし、Windowの位置を50pt下げています。
これで上50pt、下40ptの余白ができます。
上下余白部分にUIViewをそれぞれ設定し、色を設定します。
さらに画像がある場合はUIImageViewaddSubViewします。

備考

  • シミュレータで少し確認しただけなので、もしかしたら色々問題があるかもしれません。使用する場合は自己責任でお願いします。
  • iPhoneXのSafe Areaは左右にも余白があるため、ちゃんとやるなら左右にも気を使う必要がありそうです
  • 余白部分がただの黒帯とかだと、そのせいでリジェクトになる可能性があるかもしれません
  • iPhoneXかどうかは画面アスペクト比でざっくり判定しています



[출처] https://qiita.com/tkyaji/items/8cdc0a4324d4e89633e8

반응형
Posted by blueasa
, |

[Link] unity-webview

Unity3D/Plugins / 2017. 10. 23. 19:11


[Link] https://github.com/gree/unity-webview

반응형
Posted by blueasa
, |

http://www.forest.impress.co.jp/docs/news/20140627_655577.html

 

먼저 E-Motion 에 관한 내용 입니다.

 

http://emote2.mtwo.co.jp/index.php

요기는 홈페이지

 

다른것 보다 눈에 띄는건, 유니티에 넣을수 있다는 점 이네요. Live2D의 경우에 인티그레이션이 되어있었나;;가물가물 합니다.

안드로이드, ISO, PSP, 3DS, PSVITA라거나  플스3, 엑박 다 호환되는듯 합니다.

 

피쳐를 살펴보면, E-motion은 유니티에 대응해, 보다 범용적으로 사용할 수 있게 되었다고 합니다.   물론 유니티 Pro대응입니다.

 

E-mote의 캐릭터 생성

기본 제작은 PSD로 조각조각 그린 그림을 가져와서, 이미지를 구부리거나 휘거나 돌리는 등? 으로 작업을 합니다.   일단 인티그레이션이 Live2D에 비해 잘 되어있는것 같고, 유니티에서 바로 쓸수 있는거 같아서??(확인은 해봐야 합니다)  맘에 드네요.

 

PSD 원화 만들기E-mote에 PSD를 캡처

타임 라인에서 애니메이션 - 숀을 낸다

 

대략 위와 같은 느낌??

 

 

 

다운로드는 아래 링크를 따라가세요~

 

http://emote2.mtwo.co.jp/download.php

 

물론, 그때그때 업데이트가 됩니다.

 

자주 업데이트가 되니, 잘 읽어보시고 다운로드 받으시기 바랍니다.  평가판을 받아서 써 볼 수 있습니다.  평가판은 90일간 사용해 볼 수 있습니다.   가격도 Live2D보다 저렴한거 같네요.



[출처] E-Motion . . . Live 2D 와 비슷한 계열의 툴. |작성자 세라프


반응형
Posted by blueasa
, |



Welcome to Part One. 

Integrating Steam into my Unity Project, ARENA 3D, has been a big challenge and I would to share some of the knowledge I have acquired since being Greenlit on Steam back in February.

This is Part One and I demonstrate a handful of Steam API features within ARENA 3D and go on to show the basics of installing the Steamworks .NET wrapper into your Unity Project and then recreating the Top Left Header which is found in the ARENA 3D Main Menu.

https://steamworks.github.io/ -- Steamworks .NET C# Wrapper
http://store.steampowered.com/app/438... -- ARENA 3D on Steam


반응형
Posted by blueasa
, |


[링크http://lhh3520.tistory.com/315



[추가]

Unity Analytics도 Offline 일 때,

Cache에 저장해둔 후, Online이 되면 전송함


[참조

Our SDK caches events that are sent if the request fails for any reason(e.g. no internet connection) after it reaches the retry threshold.
Once there's an internet connection, we resend the cached events.


[참조 출처]

https://forum.unity3d.com/threads/is-unity-analytics-a-best-effort-delivery-service-offline-unreliable-connections.311369/

반응형
Posted by blueasa
, |


[Link] https://github.com/asus4/unity-taptic-plugin



[File]

unity-taptic-plugin-master.zip


반응형
Posted by blueasa
, |


[링크] http://docs.apteligent.kr/crittercism_man/quickstart.html

반응형
Posted by blueasa
, |


[링크] http://ucss.webjema.com/http/index.html

반응형
Posted by blueasa
, |

Welcome to the "Borderless Resizable Movable Standalone Window" Unity Asset.

Summary:
"Borderless Resizable Movable Standalone Window" is an Unity Plugin that gives you the ability to control the actual window position,size and borders of your standalone build via Scripting.
In other words it lets you remove the borders of your game's window and gives you the API to minimize,close,maximize,resize ect. through your scripts.
There are tons of creative ways to use it and implement it to your games/programs an example would be this template.
The package comes with 2 Example Scenes , 1 Launch Scene and 4 scripts (C# and Js) to help you start and understand its use.
Can be combined with Unity's current API to achieve great effects !
NOTE : It has been tested on Windows Unity Pro and Indie, other platforms are unknown!
So if you purchase for another platform do it at your own risk !!

What you actually get:
~A "QuickAutoBorderless" boolean that forces Borderless mode on the build on initialization without restarting it
~A "FullyAutoBorderless" boolean that forces Borderless mode on the build on initialization after restarting it
~A "AllowSizeResettingBeforeExit" boolean that makes the window start as a small 116x90 window instead of full size
~New Scripting API.
-Window.Minimize ();
-Window.Fullscreen ();
-Window.Fullscreen (Vector2);
-Window.Fullscreen (int,int);
-Window.Maximize ();
-Window.Maximize (boolean);
-Window.Exit ();
-Window.ForceExit ();
-Window.IsDoneLoading();
-Window.IsBorderless ();
-Window.Border ();
-Window.Border (boolean);
-Window.SetMinWidth (int);
-Window.SetMaxWidth (int);
-Window.SetMinHeight (int);
-Window.SetMaxHeight (int);
-Window.SetRect (Rect);
-Window.SetRect (int,int,int,int);
-Window.SetPosition (int,int);
-Window.SetPosition (Vector2);
-Window.SetSize (int,int);
-Window.SetSize (Vector2);
-Window.GetMinWidth ();
-Window.GetMaxWidth ();
-Window.GetMinHeight ();
-Window.GetMaxHeight ();
-Window.GetBorderRect ();
-Window.GetBorderPosition ();
-Window.GetBorderSize ();
-Window.GetRect ();
-Window.GetPosition ();
-Window.GetSize ();
-Window.GrabStart ();
-Window.GrabEnd ();
-Window.QuickDisableBorders();
-Window.ResizeLeftStart ();
-Window.ResizeLeftEnd ();
-Window.ResizeDownLeftStart ();
-Window.ResizeDownLeftEnd ();
-Window.ResizeDownStart ();
-Window.ResizeDownEnd ();
-Window.ResizeDownRightStart ();
-Window.ResizeDownRightEnd ();
-Window.ResizeRightStart ();
-Window.ResizeRightEnd ();
-Window.ResizeRightTopStart ();
-Window.ResizeRightTopEnd ();
-Window.ResizeTopStart ();
-Window.ResizeTopEnd ();
-Window.ResizeTopLeftStart ();
-Window.ResizeTopLeftEnd ();

Unity useful API:
-Screen.Width : int;
-Screen.Height : int;
-Screen.currentResolution : Vector2;
and many more...

Example Uses:
Create game launchers like the ones of top branded games (example: League of Legends or Steam !!) with no or custom borders.
Create games with awesome borders that make the difference in the user's desktop !!
Simulate Window movement or teleport the window dynamically without having the user do anything !!
Create popup/warning windows that can't be closed by the user and display information or other useful stuff.
Create invisible windows by having their width or height be 0 or even below 0.
Move your windows outside the screen or in places that the cursor usually cant go.
TOP: Have fullscreen windowed mode at full resolution without waiting for Unity's standard fullscreen buffering !!!
and many more, just use your imagination and creativity...

How to install the plugin:
The first thing you may want to do is use it , but you will have to make a few steps before beeing able to do so.
1.Open Unity and go to Edit -> Project Settings -> Player -> Other Settings -> Api Compatibility Level and set it to ".NET 2.0"
2.Drag the "Window" C# script located inside of Plugins folder and drop it on any form of gameobject inside your scene.
(2.1 Warning: Do not deactivate the script. Drop it once , having multiple "Window" scripts inside one scene is not supported.)
3.Do not change the location of the System.Windows.Forms file located inside the Plugins folder.
4.If you don't already know, if you change the location of "Window" C# script you wont be able to call any of the API above from any UnityScript !
5.For more accurate installation guide read the Installation_Guide.txt

How to correctly use it:
Note : This plugin is not meant to be used in the editor , most functions are protected (cant be used in the editor) to protect you from causing damage or annoying behavior. Also some of the read or "get" values will return wrong information in the editor.
---------------------------------------------------------------
"FullyAutoBorderless"
Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Fully Auto Borderless"
If you have this variable enabled and you build your standalone , it will always force the borderless mode even if you try later to set it to bordered by code it will turn back to borderless !
This is good if you want the standalone to be borderless from the beginning to the end the only drawback is that it requires the client to restart once every time you decide to remove or add borders.
We can counter this behaviour by having a launcher scene (that is already included as an example).
---------------------------------------------------------------
"QuickAutoBorderless"
Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Quick Auto Borderless"
This is a lightweight borderless mode that will not require a restart to activate with the drawnback that it can't be resized without making the borderss return while resizing..
If your project requires little to no window resizing or you are ok with your client to make this behaviour then this option is for you.
---------------------------------------------------------------
"AllowSizeResettingBeforeExit"
Once you have dropped the script into a gameobject then you will see a tickbox variable that says "Allow Size Resetting Before Exit"
This variable is create to make the window launch with a small size (116 x 90) and reduce problems while increasing performance.
It also recommended to edit player setting and set this resolution to the window.
(Read installation guide for more info)
---------------------------------------------------------------
-Window.Minimize ();
Minimizes the window as if you had clicked the minimize button.
---------------------------------------------------------------
-Window.Fullscreen ();
Sets the window into fullscreen mode , by preserving the current resolution.
(Works just like standard Unity fullscreen function)
---------------------------------------------------------------
-Window.Fullscreen (Vector2);
Same as above but allows you to set the quality as a Vector2
---------------------------------------------------------------
-Window.Fullscreen (int,int);
Same as above but allows you to set the quality as two integers instead of one Vector2
---------------------------------------------------------------
-Window.Maximize ();
Will Maximize the window at full speed and have the same results as if you had clicked the maximize button,
if you are running on borderless mode it will look like fullscreen mode but a lot faster :)
---------------------------------------------------------------
-Window.Maximize (boolean);
Same as above but if the boolean is set to false it will take into consideration the min/max width/height you have set and will result into a max size mode ;)
---------------------------------------------------------------
-Window.Exit ();
Similar to Unity's default quit function.
---------------------------------------------------------------
-Window.ForceExit ();
Will force window exit with a high priority and will cause the window to close very fast even if its not responding !! :)
---------------------------------------------------------------
-Window.IsDoneLoading();
Returns true if all calculatings of the window plugin are done at least once. Good for getting accurate info in the Start or Awake function.
---------------------------------------------------------------
-Window.IsBorderless ();
Returns true if the standalone is borderless and false if the window is bordered.
---------------------------------------------------------------
-Window.Border ();
Will make the window borderless if it has borders or will make the window bordered if its borderless.
(Warning , it will force the window to restart and thus lose all processes so be careful to save before calling that)
---------------------------------------------------------------
-Window.Border (boolean);
Will set borderless mode if set to false,
will set to bordered mode if set to true.
(Same warning as above)
---------------------------------------------------------------
-Window.SetMinWidth (int);
Will set the minimum width allowed to the window
(Some functions have the ability to ignore this)
---------------------------------------------------------------
-Window.SetMaxWidth (int);
Will set the maximum width allowed to the window
(Some functions have the ability to ignore this)
---------------------------------------------------------------
-Window.SetMinHeight (int);
Will set the minimum height allowed to the window
(Some functions have the ability to ignore this)
---------------------------------------------------------------
-Window.SetMaxHeight (int);
Will set the maximum height allowed to the window
(Some functions have the ability to ignore this)
---------------------------------------------------------------
-Window.GetMinWidth (int);
Returns the minimum width you have set through Window.SetMinWidth as an int
---------------------------------------------------------------
-Window.GetMaxWidth (int);
Returns the maximum width you have set through Window.SetMaxWidth as an int
---------------------------------------------------------------
-Window.GetMinHeight (int);
Returns the minimum height you have set through Window.SetMinHeight as an int
---------------------------------------------------------------
-Window.GetMaxHeight (int);
Returns the maximum height you have set through Window.SetMaxHeight as an int
---------------------------------------------------------------
-Window.SetRect (Rect);
Sets the window's position and size at the same time to the given Rect
---------------------------------------------------------------
-Window.SetRect (int,int,int,int);
Same as above but instead of a rect it gets 4 separate ints
---------------------------------------------------------------
-Window.SetPosition (int,int);
Sets the position of the window only to the given int values and preserves the width and height
(Height and Width will not work right in bordered mode)
---------------------------------------------------------------
-Window.SetPosition (Vector2);
Same as above but instead of two ints it takes one Vector2
---------------------------------------------------------------
-Window.SetSize (int,int);
Sets the window's Size to the given int values and preserves the location
---------------------------------------------------------------
-Window.SetSize (Vector2);
Same as above but instead of two ints it takes one Vector2
---------------------------------------------------------------
-Window.GetBorderRect ();
Returns the Border Position and Overall Size as a Rect
---------------------------------------------------------------
-Window.GetBorderPosition ();
Returns the Border Position as a Vector2
---------------------------------------------------------------
-Window.GetBorderSize ();
Returns the Border Width and Height as a Vector2
(Might not work right)
---------------------------------------------------------------
-Window.GetRect ();
Returns the Window Position and Overall Size as a Rect
---------------------------------------------------------------
-Window.GetPosition ();
Returns the Window Position as a Vector2
---------------------------------------------------------------
-Window.GetSize ();
Returns the Window Size as a Vector2
---------------------------------------------------------------
-Window.GrabStart ();
Once called the Window will be "grabbed" by the cursor and will keep following it while preserving its offset until Window.GrabEnd is called
(Always make sure you are able to call GrabEnd because once GrabStart is activated , you wont be able to click anywhere)
(Grab and other Resize functions cant be active at the same time)
---------------------------------------------------------------
-Window.GrabEnd ();
Will give an end to the active GrabStart function
---------------------------------------------------------------
-Window.QuickDisableBorders();
This function will disable the borders of the window using the latest "Quick" method.
You will probably not need to call it but so far it is only used in Unity5 after entering and exiting fullscreen mode to re-deactivate the borders if using QuickBorderless option.
---------------------------------------------------------------
-Window.ResizeLeftStart ();
Once called it will start changing the size of the window only from the left side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeLeftEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeDownLeftStart ();
Once called it will start changing the size of the window only from the left and down side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeDownLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeDownLeftEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeDownStart ();
Once called it will start changing the size of the window only from the down side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeDownEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeDownEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeDownRightStart ();
Once called it will start changing the size of the window only from the down and right side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeDownRightEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeDownRightEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeRightStart ();
Once called it will start changing the size of the window only from the right side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeRightEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeRightEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeRightTopStart ();
Once called it will start changing the size of the window only from the right and top side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeRightTopEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeRightTopEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeTopStart ();
Once called it will start changing the size of the window only from the top side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeTopEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeTopEnd ();
Will stop resizing the window if the above function was called.
---------------------------------------------------------------
-Window.ResizeTopLeftStart ();
Once called it will start changing the size of the window only from the top and left side according to the mouse position while preserving its offset.
(Its important to call the Window.ResizeTopLeftEnd function or else you wont be able to call any other grab or resize functions or click anywhere)
---------------------------------------------------------------
-Window.ResizeTopLeftEnd ();
Will stop resizing the window if the above function was called.
--------------------------------------------------------------
--------------------------------------------------------------
UNITY 5+ NOTES :
If using Unity 5.x the QuickBorderless Option will work way better , the only drawnback noticed is that after entering and exiting fullscreen mode, you will most likely need to call "QuickDisableBorders(); function after exiting fullscreen mode.
Therefore the Launcher Scene is not needed..

Conctact Info :
Email : DarknessBlade.Original@gmail.com
Youtube : https://www.youtube.com/DarknessBladeOrigin (We have TUTORIAL VIDEOS)

ASSET STORE 
VIDEO-1
VIDEO-2




[출처] https://forum.unity3d.com/threads/borderless-standalone-window-resizable-movable.298229/

반응형
Posted by blueasa
, |