public static int FindTreePrototype(Terrain terrain, Terrain sourceTerrain, int sourceTree) { if (sourceTree == PaintTreesTool.kInvalidTree || sourceTree >= sourceTerrain.terrainData.treePrototypes.Length) { return(PaintTreesTool.kInvalidTree); } if (terrain == sourceTerrain) { return(sourceTree); } TreePrototype sourceTreePrototype = sourceTerrain.terrainData.treePrototypes[sourceTree]; for (int i = 0; i < terrain.terrainData.treePrototypes.Length; ++i) { if (sourceTreePrototype.Equals(terrain.terrainData.treePrototypes[i])) { return(i); } } return(PaintTreesTool.kInvalidTree); }
public override void OnEnterToolMode() { Terrain terrain = null; if (Selection.activeGameObject != null) { terrain = Selection.activeGameObject.GetComponent <Terrain>(); } if (terrain != null && terrain.terrainData != null && m_LastSelectedTreePrototype != null) { for (int i = 0; i < terrain.terrainData.treePrototypes.Length; ++i) { if (m_LastSelectedTreePrototype.Equals(terrain.terrainData.treePrototypes[i])) { selectedTree = i; break; } } } m_TargetTerrain = terrain; m_LastSelectedTreePrototype = null; }
public void Execute() { FTransform transform = new FTransform(); for (int i = 0; i < length; ++i) { ref TreeInstance treeInstance = ref treeInstances[i]; TreePrototype serchTreePrototype = treePrototypes[treeInstance.prototypeIndex]; if (serchTreePrototype.Equals(treePrototype)) { transform.rotation = new float3(0, treeInstance.rotation, 0); transform.position = (treeInstance.position * new float3(size.x, size.y, size.x)) + terrainPosition; transform.scale = new float3(treeInstance.widthScale, treeInstance.heightScale, treeInstance.widthScale); treeTransfroms.Add(transform); } }
public override bool Equals(object obj) => _obj.Equals(obj);