[SerializeField] Transform[] checkPoints; [SerializeField] float pointRadius; [SerializeField] Sprite showInFogSprite; //用來放Sprite [SerializeField] LayerMask fogLayer; [SerializeField] int hideLayer; int defaltLayer; |
Transform[] checkPoints = new Transform[0]; float pointRadius = 0.1f; LayerMask fogLayer; |
void CheckObjInFog() { if (checkPoints.Length == 0) { return; } bool hideWithFog = true; foreach (var point in checkPoints) { if (!Physics2D.OverlapCircle(point.position, pointRadius,fogLayer)) { hideWithFog = false; break; } } int currentLayer = (hideWithFog) ? hideLayer : defaultLayer; if (currentLayer != gameObject.layer) //檢查Layer是否有更動 { SetLayerRecursively(gameObject, currentLayer); //設置Layer if (currentLayer == hideLayer) //判斷生成靜態圖 { GenerateHideSprite(); //生成靜態圖 } } } |
void GenerateHideSprite() { if(showInFogSprite == null) { return; } //判斷要不要生成靜態圖 GameObject spriteInFog = new GameObject(); //生成GameObjcet spriteInFog.transform.position = transform.position; //設置位置 SpriteInFog hideSprite = spriteInFog.AddComponent<SpriteInFog>(); //附上SpriteInFog腳本 hideSprite.SetSpriteInFog(checkPoints, pointRadius, showInFogSprite, fogLayer); //設置靜態圖 } |
public void SetSpriteInFog(Transform[] points,float radius,Sprite showSprite,LayerMask layer) { checkPoints = new Transform[points.Length]; //設置checkPoints pointRadius = radius; //設置radiius SpriteRenderer renderer = gameObject.AddComponent<SpriteRenderer>(); renderer.sprite = showSprite; //設置顯示在霧中的圖 renderer.renderingLayerMask = 1; //RenderingLayer要比背景的高 fogLayer = layer; //設置Layer for (int i = 0; i < points.Length; i++) //生成checkPoints { GameObject point = new GameObject(); //生成GameObject point.transform.parent = transform; //設置父物件 point.transform.position = points[i].position; //設置位置 checkPoints[i] = point.transform; //加入陣列 } } |
void CheckObjInFog() { if (checkPoints.Length == 0) { return; } foreach (var point in checkPoints) { if (!Physics2D.OverlapCircle(point.position, pointRadius, fogLayer)) { Destroy(gameObject); break; } } } |
--- 重點文章 --- (0)
└學習、開發資源分享 (8)
└發佈的遊戲 (4)
└學習和教育 (2)
└關於樂小呈 (9)
--- 學習日誌 -- (0)
└綜合學習 (7)
└遊戲和程式 (63)
└數學和圖學 (56)
└網頁和前端 (25)
└技術和美術 (1)
--- 學習筆記 --- (0)
└零碎筆記 (27)
└複雜筆記 (5)
--- 美術相關 --- (0)
└畫圖大雜燴 (24)
└建模大雜燴 (23)
--- 專案相關 --- (1)
└山鴉行動 (150)
└投擲地牢 (23)
└學習專案大雜燴 (97)
--- 教學相關 --- (0)
└距離場數學函數 (22)
└遊戲程式教學 (1)
└著色器的教學 (1)
└分享一些東西 (1)
└我捨不得刪,別看 (8)
--- 其他文章 --- (0)
└近況和閒聊 (60)
└回顧和歷程 (26)
└遊戲和心得 (5)
└寫到一半的 (2)
└蛤 (1)
kktwtwyufoo 給 大家:
歡迎大家來到魔法世界的記事的小屋,有任何問題歡迎留言,小說也非常歡迎觀賞的,謝謝配合。看更多我要大聲說昨天23:14