本文整理汇总了C#中TDTK.UnitTower类的典型用法代码示例。如果您正苦于以下问题:C# UnitTower类的具体用法?C# UnitTower怎么用?C# UnitTower使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
UnitTower类属于TDTK命名空间,在下文中一共展示了UnitTower类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: BuildTower
//called by any external component to build tower, uses buildInfo
public static string BuildTower(UnitTower tower)
{
if(buildInfo==null) return "Select a Build Point First";
UnitTower sampleTower=GetSampleTower(tower);
//check if there are sufficient resource
List<int> cost=sampleTower.GetCost();
int suffCost=ResourceManager.HasSufficientResource(cost);
if(suffCost==-1){
ResourceManager.SpendResource(cost);
GameObject towerObj=(GameObject)Instantiate(tower.gameObject, buildInfo.position, buildInfo.platform.thisT.rotation);
UnitTower towerInstance=towerObj.GetComponent<UnitTower>();
towerInstance.InitTower(instance.towerCount+=1);
towerInstance.Build();
//clear the build info and indicator for build manager
ClearBuildPoint();
return "";
}
return "Insufficient Resource";
}
开发者ID:Pringlez,项目名称:Alien-Danger-TD,代码行数:26,代码来源:BuildManager.cs
示例2: BuildTower
//called by any external component to build tower, uses buildInfo
public static string BuildTower(UnitTower tower)
{
if(buildInfo==null) return "Select a Build Point First";
//dont allow building of resource tower before game started
if(tower.type==_TowerType.Resource && !GameControl.IsGameStarted()){
return "Cant Build Tower before spawn start";
}
UnitTower sampleTower=GetSampleTower(tower);
//check if there are sufficient resource
List<int> cost=sampleTower.GetCost();
int suffCost=ResourceManager.HasSufficientResource(cost);
if(suffCost==-1){
ResourceManager.SpendResource(cost);
GameObject towerObj=(GameObject)Instantiate(tower.gameObject, buildInfo.position, buildInfo.platform.thisT.rotation);
UnitTower towerInstance=towerObj.GetComponent<UnitTower>();
towerInstance.InitTower(instance.towerCount+=1);
towerInstance.Build();
//register the tower to the platform
if(buildInfo.platform!=null) buildInfo.platform.BuildTower(buildInfo.position, towerInstance);
//clear the build info and indicator for build manager
ClearBuildPoint();
return "";
}
return "Insufficient Resource";
}
开发者ID:mroslander,项目名称:BoomBalls,代码行数:34,代码来源:BuildManager.cs
示例3: AddNewTower
public static void AddNewTower(UnitTower newTower)
{
if (instance.towerList.Contains(newTower)) return;
instance.towerList.Add(newTower);
instance.AddNewSampleTower(newTower);
if (onAddNewTowerE != null) onAddNewTowerE(newTower);
}
开发者ID:toooooooo,项目名称:BEER,代码行数:7,代码来源:BuildManager.cs
示例4: _AddNewTower
public void _AddNewTower(UnitTower newTower){
int count=buttonList.Count;
buttonList.Add(buttonList[count-1].Clone("button"+(count), new Vector3(55, 0, 0)));
buttonList[count].imageIcon.sprite=newTower.iconSprite;
EventTrigger trigger = buttonList[count].rootObj.GetComponent<EventTrigger>();
EventTrigger.Entry entry=SetupTriggerEntry();
trigger.triggers.Add(entry);
}
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:9,代码来源:UIBuildButton.cs
示例5: Start
// Use this for initialization
void Start()
{
myRenderers = GetComponentsInChildren<MeshRenderer>();
myRenderersColors = new List<Color>(myRenderers.Length);
for (int i = 0; i < myRenderers.Length; i++)
{
myRenderersColors.Add(myRenderers[i].material.color);
}
unitTowerT = GetComponent<TDTK.UnitTower>();
}
开发者ID:toooooooo,项目名称:BEER,代码行数:12,代码来源:TowerHighlighter.cs
示例6: BuildTower
public void BuildTower(Vector3 pos, UnitTower tower)
{
//pathfinding related code, only call if this platform is walkable;
if(!walkable) return;
NodeTD node=PathFinder.GetNearestNode(pos, nodeGraph);
node.walkable=false;
tower.SetPlatform(this, node);
//if the node has been check before during CheckForBlock(), just use the altPath
if(node==nextBuildNode){
for(int i=0; i<subPathList.Count; i++){
if(subPathList[i].IsNodeInPath(node)) subPathList[i].SwitchToSubPath();
}
return;
}
for(int i=0; i<subPathList.Count; i++){
if(subPathList[i].IsNodeInPath(node)) subPathList[i].SearchNewPath(nodeGraph);
}
}
开发者ID:Yaroslavich,项目名称:Scripts,代码行数:21,代码来源:PlatformTD.cs
示例7: OnTowerUpgraded
public static void OnTowerUpgraded(UnitTower tower)
{
if (onTowerUpgradedE != null) onTowerUpgradedE(tower);
}
开发者ID:toooooooo,项目名称:BEER,代码行数:4,代码来源:TDTK.cs
示例8: OnTowerSold
public static void OnTowerSold(UnitTower tower)
{
if (onTowerSoldE != null) onTowerSoldE(tower);
}
开发者ID:toooooooo,项目名称:BEER,代码行数:4,代码来源:TDTK.cs
示例9: CreateSampleTower
public UnitTower CreateSampleTower(UnitTower towerPrefab){
GameObject towerObj=(GameObject)Instantiate(towerPrefab.gameObject);
towerObj.transform.parent=transform;
if(towerObj.GetComponent<Collider>()!=null) Destroy(towerObj.GetComponent<Collider>());
Utility.DestroyColliderRecursively(towerObj.transform);
towerObj.SetActive(false);
UnitTower towerInstance=towerObj.GetComponent<UnitTower>();
towerInstance.SetAsSampleTower(towerPrefab);
return towerInstance;
}
开发者ID:jrobison93,项目名称:Museum-of-Aviation-Exhibit,代码行数:13,代码来源:BuildManager.cs
示例10: PreBuildTower
public static void PreBuildTower(UnitTower tower){
PlatformTD platform=null;
LayerMask mask=1<<LayerManager.LayerPlatform();
Collider[] cols=Physics.OverlapSphere(tower.thisT.position, _gridSize, mask);
if(cols.Length>0) platform=cols[0].gameObject.GetComponent<PlatformTD>();
if(platform!=null){
Vector3 buildPos=GetTilePos(platform.thisT, tower.thisT.position);
tower.thisT.position=buildPos;
tower.thisT.rotation=platform.thisT.rotation;
}
else Debug.Log("no platform found for pre-placed tower");
tower.InitTower(instance.towerCount+=1);
}
开发者ID:jrobison93,项目名称:Museum-of-Aviation-Exhibit,代码行数:15,代码来源:BuildManager.cs
示例11: BuildTowerDragNDrop
//called when a tower building is initated in DragNDrop, use the sample tower as the model and set it in DragNDrop mode
public static string BuildTowerDragNDrop(UnitTower tower){ return instance._BuildTowerDragNDrop(tower); }
开发者ID:jrobison93,项目名称:Museum-of-Aviation-Exhibit,代码行数:2,代码来源:BuildManager.cs
示例12: _SelectTower
public void _SelectTower(UnitTower tower)
{
_ClearSelectedTower();
selectedTower=tower;
float range=tower.GetRange();
Transform indicatorT=rangeIndicator;
if(indicatorT!=null){
indicatorT.parent=tower.thisT;
indicatorT.position=tower.thisT.position;
indicatorT.localScale=new Vector3(2*range, 1, 2*range);
indicatorT.gameObject.SetActive(true);
}
}
开发者ID:Pringlez,项目名称:Alien-Danger-TD,代码行数:18,代码来源:GameControl.cs
示例13: SelectTower
public static void SelectTower(UnitTower tower)
{
instance._SelectTower(tower);
}
开发者ID:Pringlez,项目名称:Alien-Danger-TD,代码行数:4,代码来源:GameControl.cs
示例14: Building
public static void Building(UnitTower tower){ instance.StartCoroutine(instance._Building(tower)); }
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:1,代码来源:UIOverlay.cs
示例15: UpdatePathMaps
public bool UpdatePathMaps(UnitTower tow, bool destroy = false)
{
int index_z = (int)Mathf.Round(tow.Platform.transform.position.z - platform_min_z) / 2;
int index_x = (int)Mathf.Round(tow.Platform.transform.position.x - platform_min_x) / 2;
if (index_z < 0)
return true;
beerMap[index_x, index_z + 1] = destroy; // false -> new tower build there
// Check if the last paths are still walkable
// exit if true
if (lastPathOne.Count >= 0 && lastPathTwo.Count >= 0)
{
bool lastPathOK = true;
for (int i = 0; i < lastPathOne.Count; i++)
{
if (beerMap[lastPathOne[i].X, lastPathOne[i].Y] == false)
lastPathOK = false;
}
for (int i = 0; i < lastPathTwo.Count; i++)
{
if (beerMap[lastPathTwo[i].X, lastPathTwo[i].Y] == false)
lastPathOK = false;
}
if (lastPathOK)
return true;
}
if (!GenerateGlobalPaths())
{
beerMap[index_x, index_z + 1] = !destroy;
GenerateGlobalPaths();
return false;
}
// TODO position of this SpawnManager functions ?
// Here becazse GenerateGlobalPaths is called at startup
// Waves not generated at that time
for (int i = 0; i < SpawnManager.instance.waveList.Count; i++)
{
SpawnManager.instance.waveGenerator.UpdateWavePath(SpawnManager.instance.waveList[i]);
}
UnitCreep[] creeps = ObjectPoolManager.FindObjectsOfType<UnitCreep>();
foreach (UnitCreep creep in creeps)
{
// Problem with creeps not in the maze -> between start and normal platforms
// or between normal platforms and goal
// No new Path, if creep is already past the last tower row
if (creep.transform.position.z > platform_min_z)
{
int c_z;
if (creep.transform.position.z > platform_max_z)
c_z = 34;
else
c_z = Mathf.CeilToInt(creep.transform.position.z - platform_min_z) / 2; // Changed to CeilToInt and not round
int c_x = (int)Mathf.Round(creep.transform.position.x - platform_min_x) / 2;
parameters = new PathFindingParameters(new Point(c_x, c_z), pt_goal, beerMap, nodeMap);
pf = new PathFinder(parameters);
PathTD pt = pf.FindPathTD(creep.transform, "CreepCustomPath");
creep.SetNewPath(pt);
}
}
//Object[] towers = GameObject.FindObjectsOfType(typeof(UnitTower));
//Object[] platforms = GameObject.FindObjectsOfType(typeof(PlatformTD));
//Object[] paths = GameObject.FindObjectsOfType(typeof(PathTD));
//SpawnManager.ChangeDefaultPath(paths[0] as PathTD);
return true;
}
开发者ID:toooooooo,项目名称:BEER,代码行数:80,代码来源:BuildManager.cs
示例16: TowerUseShootObjectT
public static bool TowerUseShootObjectT(UnitTower tower){
_TowerType type=tower.type;
if(type==_TowerType.AOE || type==_TowerType.Mine) return true;
return false;
}
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:5,代码来源:UnitEditorWindow.cs
示例17: TowerUseShootObject
public static bool TowerUseShootObject(UnitTower tower){
_TowerType type=tower.type;
if(type==_TowerType.Turret) return true;
return false;
}
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:5,代码来源:UnitEditorWindow.cs
示例18: TowerTargetHostile
public static bool TowerTargetHostile(UnitTower tower){
_TowerType type=tower.type;
if(type==_TowerType.Turret || type==_TowerType.AOE || type==_TowerType.Mine) return true;
return false;
}
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:5,代码来源:UnitEditorWindow.cs
示例19: _Building
IEnumerator _Building(UnitTower tower){
Slider bar=GetUnusedBuildingBar();
Transform barT=bar.transform;
while(tower!=null && tower.IsInConstruction()){
bar.value=tower.GetBuildProgress();
if(mainCam==null){
mainCam=Camera.main;
continue;
}
Vector3 screenPos = mainCam.WorldToScreenPoint(tower.thisT.position+new Vector3(0, 0, 0));
barT.localPosition=(screenPos+new Vector3(0, -20, 0))/UI.GetScaleFactor();
bar.gameObject.SetActive(true);
yield return null;
}
bar.gameObject.SetActive(false);
}
开发者ID:ahvdesign,项目名称:Tower-Defense-Q,代码行数:19,代码来源:UIOverlay.cs
示例20: BuildTower
//called by any external component to build tower, uses buildInfo
public static string BuildTower(UnitTower tower)
{
if (buildInfo == null) return "Select a Build Point First";
UnitTower sampleTower = GetSampleTower(tower);
/***/
// check if there's energy reciving tower
if (tower.electricityNeeded && !tower.electricityReciever && !tower.electricityFacility)
{
LayerMask maskTarget = 1 << LayerManager.LayerTower();
Collider[] cols = Physics.OverlapSphere(buildInfo.position, 1000 /*GetRange()*/, maskTarget);
if (cols.Length > 0)
{
tower.electicitySources.Clear();
// find all electric facility
for (int i = 0; i < cols.Length; i++)
{
// if it's not electric reciever skip
if (!cols[i].gameObject.GetComponent<UnitTower>().electricityReciever)
continue;
//float test = cols[i].gameObject.GetComponent<UnitTower>().GetRange();
//float test2 = Vector3.Distance(cols[i].gameObject.GetComponent<UnitTower>().transform.position, buildInfo.position);
// if this tower is in range of electricityReciever
if (Vector3.Distance(cols[i].gameObject.GetComponent<UnitTower>().transform.position, buildInfo.position) <= cols[i].gameObject.GetComponent<UnitTower>().GetRange())
{
tower.electicitySources.Add(cols[i].gameObject.GetComponent<UnitTower>());
}
}
if (tower.electicitySources.Count == 0)
{
// set electricity source for tower weapon
return "There is not enough electricity";
}
}
else
return "There is not enough electricity";
}
/***/
//check if there are sufficient resource
List<int> cost = sampleTower.GetCost();
int suffCost = ResourceManager.HasSufficientResource(cost);
if (suffCost == -1)
{
ResourceManager.SpendResource(cost);
GameObject towerObj = (GameObject)Instantiate(tower.gameObject, buildInfo.position, buildInfo.platform.thisT.rotation);
UnitTower towerInstance = towerObj.GetComponent<UnitTower>();
towerInstance.InitTower(instance.towerCount += 1, buildInfo.platform);
towerInstance.Build();
// if new electricity reciver is placed search for all towers in it's range and add itself as electricity source
if (tower.electricityReciever)
{
LayerMask maskTarget = 1 << LayerManager.LayerTower();
Collider[] cols = Physics.OverlapSphere(buildInfo.position, tower.GetRange(), maskTarget);
if (cols.Length > 0)
{
UnitTower tmp_tow;
for (int i = 0; i < cols.Length; i++)
{
tmp_tow = cols[i].gameObject.GetComponent<UnitTower>();
if (tmp_tow.electricityReciever || tmp_tow.electricityFacility)
continue;
tmp_tow.electicitySources.Add(towerInstance);
}
}
}
//clear the build info and indicator for build manager
ClearBuildPoint();
return "";
}
return "Insufficient Resource";
}
开发者ID:toooooooo,项目名称:BEER,代码行数:88,代码来源:BuildManager.cs
注:本文中的TDTK.UnitTower类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论