부하가 증가하지 않는 투명 버튼 만드는 법
가져오기
여러분, GUI로 투명한 버튼 만들까요?
그럼 어떻게 할까요?
일반적으로 버튼을 준비하여 Image에 대한 Colorα값 = 0 의 방법이죠.
그러나 이런 방법을 사용하면 사실상 그리기에 부담이 된다.그림이 없는 것 같은데 Image 거예요.α 값이 =0인 경우에도 그려집니다.(α값 = 0의 Mesh가 남아 있어 드로잉 객체가 됨)
Buton에서 Image를 사용할 때의 동작
[Buton의 Image 열기α = 0으로 설정하기 전]
[Buton의 Image 열기α = 0으로 설정한 후]
Frame Debugger의 UGUI입니다.Rendering.RenderOverlays -> Canvas.RenderOverlays.DrawMesh는 버튼의 그리기 부분입니다
Draw Mesh는 일반 디스플레이나 투명도 모두 발생합니다.
어떻게 해야만 그림을 지우고 당첨 판정만 받을 수 있습니까?
해결책
Image의 후계자인 그래픽을 계승한 반을 창설했다.
ClickDetector.cspublic class ClickDetector : Graphic
{
protected override void OnPopulateMesh(VertexHelper vh)
{
// Base クラスで Mesh を生成しているので、override で Mesh を生成させないようにする。
// Graphic はデフォルトで DoLegacyMeshGeneration() を呼ぶようになっており、
// その中で OnPopulateMesh(Graphic.workerMesh) を実行している。
// Graphic.workerMesh (= vh) にアクセスしてしまうと、Mesh が自動生成されるようになっている
// Mesh が生成されると、Sprite が貼られていない Image のように、白い画像が出力されるのでどうにかしないといけない。
// vh で mesh が必ず作られてしまうので、Clear を叩いて Mesh を削除する。
vh.Clear();
}
}
댓글에 적힌 상세한 말의 코드는 바로 여기에 있다.
https://bitbucket.org/Unity-Technologies/ui/src/a3f89d5f7d145e4b6fa11cf9f2de768fea2c500f/UnityEngine.UI/UI/Core/Graphic.cs?at=2017.3&fileviewer=file-view-default#Graphic.cs-423
Image 대신 여기에 만든 클릭 디텍터를 GameObject에 붙여주세요.
Buton에 자체 제작된 "Click Detector"를 부착할 때의 동작
[Buton의 GameObject Image를 Click Detector로 교체]
Frame Debugger의 UGUI입니다.Rendering.RenderOverlays -> Canvas.RenderOverlays.DrawMesh가 없어졌어요.
다 됐습니다.
Reference
이 문제에 관하여(부하가 증가하지 않는 투명 버튼 만드는 법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MasaKoha/items/fcd647af64b61b7e6a78
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Image의 후계자인 그래픽을 계승한 반을 창설했다.
ClickDetector.cs
public class ClickDetector : Graphic
{
protected override void OnPopulateMesh(VertexHelper vh)
{
// Base クラスで Mesh を生成しているので、override で Mesh を生成させないようにする。
// Graphic はデフォルトで DoLegacyMeshGeneration() を呼ぶようになっており、
// その中で OnPopulateMesh(Graphic.workerMesh) を実行している。
// Graphic.workerMesh (= vh) にアクセスしてしまうと、Mesh が自動生成されるようになっている
// Mesh が生成されると、Sprite が貼られていない Image のように、白い画像が出力されるのでどうにかしないといけない。
// vh で mesh が必ず作られてしまうので、Clear を叩いて Mesh を削除する。
vh.Clear();
}
}
댓글에 적힌 상세한 말의 코드는 바로 여기에 있다.https://bitbucket.org/Unity-Technologies/ui/src/a3f89d5f7d145e4b6fa11cf9f2de768fea2c500f/UnityEngine.UI/UI/Core/Graphic.cs?at=2017.3&fileviewer=file-view-default#Graphic.cs-423
Image 대신 여기에 만든 클릭 디텍터를 GameObject에 붙여주세요.
Buton에 자체 제작된 "Click Detector"를 부착할 때의 동작
[Buton의 GameObject Image를 Click Detector로 교체]
Frame Debugger의 UGUI입니다.Rendering.RenderOverlays -> Canvas.RenderOverlays.DrawMesh가 없어졌어요.
다 됐습니다.
Reference
이 문제에 관하여(부하가 증가하지 않는 투명 버튼 만드는 법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MasaKoha/items/fcd647af64b61b7e6a78텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)