public static void SetUsableCollider(ref UseableCollider useableCollider, Transform root, ObjInfo info, int useTag, bool defaultEnable, bool create = false) { if (useableCollider == null) { Transform colliderTrans = null; if (!create) { colliderTrans = root.Find("useable"); } if (null == colliderTrans) { GameObject go = new GameObject("useable"); colliderTrans = go.transform; colliderTrans.SetParentIndentical(root); } useableCollider = colliderTrans.GetComponent <UseableCollider>(); if (useableCollider == null) { useableCollider = colliderTrans.gameObject.AddComponent <UseableCollider>(); } } useableCollider.collider = useableCollider.gameObject.GetComponent <SphereCollider>(); if (useableCollider.collider == null) { useableCollider.collider = useableCollider.gameObject.AddComponent <SphereCollider>(); } useableCollider.gameObject.SetActive(defaultEnable); useableCollider.useable = defaultEnable; useableCollider.gameObject.layer = Const.LAYER_USABLE; useableCollider.info = info; useableCollider.useTag = useTag; }
private void SetItemCollider() { ObjCollider itemCollider = itemInfo.itemCollider; if (itemCollider == null) { Transform colliderTrans = item.transform.Find("collider"); if (null == colliderTrans) { GameObject go = new GameObject("collider"); colliderTrans = go.transform; colliderTrans.SetParentIndentical(item.transform); } itemCollider = colliderTrans.GetComponent <ObjCollider>(); if (itemCollider == null) { itemCollider = colliderTrans.gameObject.AddComponent <ObjCollider>(); } itemInfo.itemCollider = itemCollider; } itemCollider.collider = itemCollider.gameObject.GetComponent <CapsuleCollider>(); if (itemCollider.collider == null) { itemCollider.collider = itemCollider.gameObject.AddComponent <CapsuleCollider>(); } itemCollider.gameObject.layer = Const.LAYER_ITEM_COLLIDER; itemCollider.info = itemInfo; }
private void SetObstacle() { GameObject obstacleObj = itemInfo.obstacle; if (null == obstacleObj) { Transform obstacleTrans = item.transform.Find("obstacle"); if (null == obstacleTrans) { obstacleObj = new GameObject("obstacle"); obstacleTrans = obstacleObj.transform; obstacleTrans.SetParentIndentical(item.transform); } else { obstacleObj = obstacleTrans.gameObject; } NavMeshObstacle navMeshObstacle = obstacleObj.GetComponent <NavMeshObstacle>(); if (navMeshObstacle == null) { navMeshObstacle = obstacleObj.AddComponent <NavMeshObstacle>(); } navMeshObstacle.carving = true; navMeshObstacle.carveOnlyStationary = false; obstacleObj.layer = Const.LAYER_OBSTACLE; itemInfo.obstacle = obstacleObj; } }
private void SetFurnitureCollider() { FurnitureCollider furnitureCollider = furnitureInfo.furnitureCollider; if (furnitureCollider == null) { Transform colliderTrans = furniture.transform.Find("collider"); if (null == colliderTrans) { GameObject go = new GameObject("collider"); colliderTrans = go.transform; colliderTrans.SetParentIndentical(furniture.transform); } furnitureCollider = colliderTrans.GetComponent <FurnitureCollider>(); if (furnitureCollider == null) { furnitureCollider = colliderTrans.gameObject.AddComponent <FurnitureCollider>(); } furnitureInfo.furnitureCollider = furnitureCollider; } furnitureCollider.collider = furnitureCollider.gameObject.GetComponent <BoxCollider>(); if (furnitureCollider.collider == null) { furnitureCollider.collider = furnitureCollider.gameObject.AddComponent <BoxCollider>(); } if (furnitureInfo.furnitureType == FurnitureType.furniture) { furnitureCollider.gameObject.layer = Const.LAYER_FURNITURE_COLLIDER; } else { furnitureCollider.gameObject.layer = Const.LAYER_BUILDING_COLLIDER; } furnitureCollider.info = furnitureInfo; }