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

카테고리

분류 전체보기 (2797)
Unity3D (853)
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

[링크] https://assetstore.unity.com/packages/tools/camera/per-layer-camera-culling-35100

 

Per-Layer Camera Culling | 카메라 | Unity Asset Store

Get the Per-Layer Camera Culling package from Umbra Evolution and speed up your game development process. Find this & other 카메라 options on the Unity Asset Store.

assetstore.unity.com

 

[참고] https://docs.unity3d.com/ScriptReference/Camera-layerCullSpherical.html

 

Unity - Scripting API: Camera.layerCullSpherical

Normally this type of culling is performed by moving the Camera's far plane closer to the eye. By setting this value to true, the culling is instead based on spherical distance. The benefit is that rotating on the same spot does not affect which objects ar

docs.unity3d.com

 

반응형
Posted by blueasa
, |

Use the [c] tag. That's what removes the default tint color. So do it like so:

Mission time left:
[c][ffffff]30 months[-][/c]

 

 

[링크] https://www.tasharen.com/forum/index.php?topic=12104.0

 

UILabel bbcode Color only modifying existing label color tint?

It really was like yo said before, you are right. But already a while it works like this. I am not sure, but i think now there is bb tag, that allows to ignore current font color tint.

www.tasharen.com

 

반응형
Posted by blueasa
, |

[링크] NGUI - BBCode

Unity3D/NGUI / 2024. 10. 17. 11:34

[링크] https://twocap.tistory.com/97

 

NGUI - BBCode

(본문 : http://www.tasharen.com/forum/index.php?topic=6706.0) NGUI에서는 BBCode를 약간 다르게 사용하는 부분도 있습니다. [u][url=http://www.tasharen.com/forum/index.php?topic=7013.0]this link[/url][/u] : url 사용하기 [c]text here[/

twocap.tistory.com

 

반응형
Posted by blueasa
, |

[링크] https://moondongjun.tistory.com/99

 

NGUI, BBCode 태그 제거하기 (Replace)

BBCode단순하게 BBCode 기능을 비활성화할 수 있지만(supportEncoding = false), 반드시 이용은 하나 유저 입력을 막고 싶은 경우가 있습니다. 정규식과 string의 Replace를 적절히 이용하면 쉽게 제거할 수 있

moondongjun.tistory.com

 

반응형

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

[펌] NGUI - Color Tint 무시하기  (0) 2024.10.17
[링크] NGUI - BBCode  (0) 2024.10.17
UITexture UV Animation  (0) 2024.09.05
[펌] NGUI-UILabel : Shadow+Outline  (0) 2024.01.25
[링크] [UnityNGUI] ScrollView에 Particle Clipping하기  (0) 2023.10.31
Posted by blueasa
, |

Unity 2021.3.44f1

Unity 6000.0.22f1

----

 

유니티 Device Simulator에 iPhone 14 이상이 없어서 찾아보니 만들어 놓은게 있어서 폴더 파일 위치나 이름들만 정리해서 UnityPackage 형태로 Export 해서 올려 둠.

 

폴더명이나 위치, 파일명 등은 Unity6에서 추가 설치되는 Device Simulator의 Package에 있는 걸 참조해서 수정했다.

아래 스크린샷 참조

 

 

아래 파일을 Import만 하면 그대로 잘 적용 된다.

(Unity6에서도 Import해서 잘 되는 것 확인함.)

 

[iPhone 14 & 15 시뮬레이터 정의 파일]

com.unity.device-simulator-Apple-iPhone-14-and-15-models.unitypackage
3.19MB

 

 

 

[참조] https://github.com/henryprescott/com.unity.device-simulator-Apple-iPhone-14-and-15-models?tab=readme-ov-file

 

GitHub - henryprescott/com.unity.device-simulator-Apple-iPhone-14-and-15-models: A simple .device (Device Info Asset) JSON file

A simple .device (Device Info Asset) JSON file with settings for iPhone 14 and 15 devices. Safe Area adjusted to the standard style of Unity devices. - henryprescott/com.unity.device-simulator-App...

github.com

 

[참조] https://gist.github.com/mrcarriere/049596740fb52907edf68712d2818df0

 

iPhone 14 Pro & Pro Max Device Definitions

iPhone 14 Pro & Pro Max Device Definitions. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

반응형
Posted by blueasa
, |

[링크] https://velog.io/@bnm000215/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%9E%90%EB%8F%99%ED%99%94-%EB%B9%8C%EB%93%9C-Git-Action

 

유니티 자동화 빌드 (Git Action)

유니티에서 빌드를 하게 되면 빌드 시간 동안 팀 프로젝트를 할 수 없게 되어버립니다.빌드 시간이 짧으면 큰 타격은 없는데, 빌드 시간이 길어지면 작업을 할 수 없으니 치명적이죠.이번 문서

velog.io

 

반응형
Posted by blueasa
, |

Unity 2021.3.44f1

----

 

Unity Editor의 Scene View에서 Camera의 View Frustum을 볼 수 있게 해주는 스크립트.

View Frustum을 보고 싶은 카메라에 Component로 넣고 실행하면 Scene View에 보인다.

 

using UnityEngine;

public class FrustumViewer : MonoBehaviour
{
// 에디터에서만 작동하도록 define
#if UNITY_EDITOR

    Camera m_Camera = null;
    Vector3[] m_nearCorners = new Vector3[4]; //Approx'd nearplane corners
    Vector3[] m_farCorners = new Vector3[4]; //Approx'd farplane corners
    Plane[] m_camPlanes = null;


    private void OnEnable()
    {
        m_Camera = this.GetComponent<Camera>();
    }

    void Update()
    {
        DrawFrustum(m_Camera);
    }

    void DrawFrustum(Camera _cam)
    {
        if (null == _cam)
            return;

        m_camPlanes = GeometryUtility.CalculateFrustumPlanes(_cam); //get planes from matrix

        Plane temp = m_camPlanes[1]; m_camPlanes[1] = m_camPlanes[2]; m_camPlanes[2] = temp; //swap [1] and [2] so the order is better for the loop
        for (int i = 0; i < 4; i++)
        {
            m_nearCorners[i] = Plane3Intersect(m_camPlanes[4], m_camPlanes[i], m_camPlanes[(i + 1) % 4]); //near corners on the created projection matrix
            m_farCorners[i] = Plane3Intersect(m_camPlanes[5], m_camPlanes[i], m_camPlanes[(i + 1) % 4]); //far corners on the created projection matrix
        }

        for (int i = 0; i < 4; i++)
        {
            Debug.DrawLine(m_nearCorners[i], m_nearCorners[(i + 1) % 4], Color.red, Time.deltaTime, true); //near corners on the created projection matrix
            Debug.DrawLine(m_farCorners[i], m_farCorners[(i + 1) % 4], Color.blue, Time.deltaTime, true); //far corners on the created projection matrix
            Debug.DrawLine(m_nearCorners[i], m_farCorners[i], Color.green, Time.deltaTime, true); //sides of the created projection matrix
        }
    }



    Vector3 Plane3Intersect(Plane p1, Plane p2, Plane p3)
    { 
        //get the intersection point of 3 planes
        return ((-p1.distance * Vector3.Cross(p2.normal, p3.normal)) +
                (-p2.distance * Vector3.Cross(p3.normal, p1.normal)) +
                (-p3.distance * Vector3.Cross(p1.normal, p2.normal))) /
                (Vector3.Dot(p1.normal, Vector3.Cross(p2.normal, p3.normal)));
    }

#endif
}

 

 

[참조] https://grrava.blogspot.com/2014/04/render-view-frustrum-of-camera-in-unity.html

 

Render the view frustum of a camera in Unity

When you select a camera in the Unity editor, gray lines indicate where the view frustum is. When it's deselected the lines are obviously no...

grrava.blogspot.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.42f1

----

 

[참고]

[링크] https://blueasa.tistory.com/2853

 

위 링크의 내용을 한 번 해보고,

안되면 아래 스크립트를 사용해 보자.

----

 

에디터의 GameView에서 Resolution을 비율이 아닌 해상도를 선택(예:1920x1080 Landscape)하면 Scale 때문에 한화면에 다 보이지 않는다.

그래서 Scale을 최소치로 내리는데, 문제는 Play를 실행하면 최소치로 내려놓은 Scale 값이 초기화되면서 화면이 다시 커진다.

그래서 Play 이후에 다시 Scale 값을 내리는 불편함이 생기는데, 찾아보니 같은 불편을 느끼는 사람이 많은 것 같다.

아래와 같은 스크립트를 만들어놨길래 써보니 꽤 마음에 든다.

 

아래 스크립트를 Editor 폴더에 넣어주기만 하면 된다.

using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;

[InitializeOnLoad]
public static class FixResolutionScale
{
    static FixResolutionScale()
    {
        EditorApplication.playModeStateChanged += OnPlayStateChanged;
        SetGameViewScale();
    }

    private static void OnPlayStateChanged(PlayModeStateChange playModeStateChange)
    {
        SetGameViewScale();
    }

    private static void SetGameViewScale()
    {
        Type gameViewType = GetGameViewType();
        EditorWindow gameViewWindow = GetGameViewWindow(gameViewType);

        if (gameViewWindow == null)
        {
            Debug.LogError("GameView is null!");
            return;
        }

        var defScaleField = gameViewType.GetField("m_defaultScale", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

        //whatever scale you want when you click on play
        float defaultScale = 0.1f;

        var areaField = gameViewType.GetField("m_ZoomArea", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
        var areaObj = areaField.GetValue(gameViewWindow);

        var scaleField = areaObj.GetType().GetField("m_Scale", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
        scaleField.SetValue(areaObj, new Vector2(defaultScale, defaultScale));
    }

    private static Type GetGameViewType()
    {
        Assembly unityEditorAssembly = typeof(EditorWindow).Assembly;
        Type gameViewType = unityEditorAssembly.GetType("UnityEditor.GameView");
        return gameViewType;
    }

    private static EditorWindow GetGameViewWindow(Type gameViewType)
    {
        Object[] obj = Resources.FindObjectsOfTypeAll(gameViewType);
        if (obj.Length > 0)
        {
            return obj[0] as EditorWindow;
        }
        return null;
    }
}

 

 

 

[출처] https://discussions.unity.com/t/game-view-scale-on-compilation-play/217998

 

반응형
Posted by blueasa
, |

UITexture UV Animation

Unity3D/NGUI / 2024. 9. 5. 13:03

Unity 2021.3.43f1

NGUI 2023.08.01

----

 

NGUI에서 UV Animation을 하기 위해 UV를 제어 할 수 있는 UITexture를 활용한 애니메이션 스크립트

 

using UnityEngine;
using System.Collections;


public class UITexture_UVAnimation : MonoBehaviour
{
    [SerializeField] private UITexture m_textureTarget = null;
    [SerializeField] private Vector2 m_v2AnimationRate = new Vector2(1f, 0f);
    private Coroutine m_coUVAnimation = null;
    private Rect m_rect;
    private float m_fDeltaTime = 0f;


    void OnEnable()
    {
        if (null == m_textureTarget)
        {
            m_textureTarget = GetComponent<UITexture>();
        }

        RunUVAnimation();
    }

    void OnDisable()
    {
        StopAllCoroutines();
    }

    void RunUVAnimation()
    {
        if (null != m_textureTarget)
        {
            if (null != m_coUVAnimation)
            {
                StopCoroutine(m_coUVAnimation);
                m_coUVAnimation = null;
            }

            m_coUVAnimation = StartCoroutine("CoUpdateUVAnimation");
        }
    }

    IEnumerator CoUpdateUVAnimation()
    {
        while (true)
        {
            m_rect = m_textureTarget.uvRect;
            m_fDeltaTime = Time.deltaTime;
            if (0f != m_v2AnimationRate.x)
            {
                m_rect.x += m_v2AnimationRate.x * m_fDeltaTime;
            }

            if (0 != m_v2AnimationRate.y)
            {
                m_rect.y += m_v2AnimationRate.y * m_fDeltaTime;
            }

            m_textureTarget.uvRect = m_rect;

            yield return null;
        }
    }
}

 

 

[참조] https://www.tasharen.com/forum/index.php?topic=8232.0

 

Scrolling UV Animation

OK, thank you for the support, It was the script writing part that i needed to avoid << smelly artist doesn't understand the use of public and private stuff... I'll have to get help after the weekend then. Thanks anyway

www.tasharen.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.41f1

GoogleMobileAds 9.1.1

MacOS Sonoma 14.6

Xcode 15.4

----

 

GoogleMobileAds 9.1.0까지는 iOS에서도 정상 빌드가 됐었는데,

GoogleMobileAds 9.1.1로 올려서 빌드해보니 빌드는 잘되지만, 실행하자마자 아래와 같은 로그를 남기면서 Crash가 난다.

 

[Crash Log]

------------------------------------------------------------------------------------------------------------------------------------------------------

Failed to look up symbolic reference at 0x10dc0191f - offset 796625 - symbol symbolic _____Sg 14MarketplaceKit14AppDistributorO in /private/var/folders/zh/ln0rqwm94499jwvk1x_hl5r00000gp/X/XXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/d/Wrapper/MyApp.app/Frameworks/UnityFramework.framework/UnityFramework

------------------------------------------------------------------------------------------------------------------------------------------------------

 

로그만 봐서는 MarketplaceKit 관련해서 이슈인 것 같아서 이래저래 찾다보니 아래 참조와 같은 이슈가 올라와 있다.

 

[참조] https://github.com/googleads/googleads-mobile-unity/issues/3489

 

Release 11.7.0 crashes the iOS game during startup · Issue #3489 · googleads/googleads-mobile-unity

[REQUIRED] Step 1: Describe your environment Unity version: 2022.3.39f1 Google Mobile Ads Unity plugin version: 9.2.0 Plugin installation method: .unitypackage (Unity package manager, .unitypackage...

github.com

 

위의 참조 링크 댓글 중 아래와 같은 글이 있다.

(댓글에 보면 요구조건에 Xcode 15.3이상 이라고 돼 있지만, 지금 나는 Xcode 15.4를 쓰고 있다)

TvaroshFlyboys commented

based on the release log of google mobile ads version 11.6.0, they've added dependency on the MarketplaceKit:

 

GoogleMobileAds 릴리즈 노트(https://github.com/googleads/googleads-mobile-unity/releases)를 보면 GoogleMobileAds iOS SDK to 11.6.0은 GoogleMobileAds Unity Plugin v9.1.1에 추가 됐다.

 

MarketplaceKit이 추가된 GoogleMobileAds Unity Plugin v9.1.1(GoogleMobileAds iOS SDK 11.6.0) 부터 iOS 빌드 시 Runtime Crash가 나고 있고,

현재 최신 버전인 GoogleMobileAds Unity Plugin v9.2.0(GoogleMobileAds iOS SDK 11.7.0)도 여전히 Runtime Crash가 나고있다.

 

혹시나 싶어서 엔진 최신버전인 Unity 6000.0.13f1으로 올려서도 빌드해 봤지만, 여전히 Runtime Crash가 난다.

 

[결론]

이 문제가 GoogleMobileAds iOS SDK 이슈인지 Xcode 이슈인지는 모르겠지만,

현재로서는 GoogleMobileAds Unity Plugin v9.1.0을 쓰면서 수정 업데이트를 기다려야 될 것 같다.

반응형
Posted by blueasa
, |