public override void OnInspectorGUI() { DrawDefaultInspector(); if(GUILayout.Button("(Re)Draw Templates")){ TemplateList t = this.target as TemplateList; List<Template> tl = new List<Template>(); //Template algorithms go here //Line Template line = ScriptableObject.CreateInstance<Template>(); line.name = LineT.name; line.vector = LineT.draw(); tl.Add(line); //Square tl.Add(new Template(SquareT.name,SquareT.draw())); //Circle tl.Add(new Template(CircleT.name, CircleT.draw())); Recognizer r = new Recognizer(); Match m1 = new Match(LineT.name, r.optimalCosineDistance(tl[0].vector,SquareT.draw() )); Match m2 = new Match(SquareT.name, r.optimalCosineDistance(tl[1].vector,SquareT.draw() )); Match m3 = new Match(CircleT.name, r.optimalCosineDistance(tl[2].vector,SquareT.draw() )); Debug.Log("Line: " +m1.score+" Square: "+m2.score+" Circle: " +m3.score); t.tl = tl; } }